{"version":3,"file":"248.1784553439a4d09a.bundle.js","mappings":";iGAAA,IAAIA,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,KACR,UAAW,KACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,YAAa,MACb,eAAgB,MAChB,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,+FCnQL,MAAMY,EACjBC,YAAYC,GACRC,KAAKD,SAAWA,EAEpBE,eACIC,QAAQC,IAAI,oDAEhBC,yBACIF,QAAQC,IAAI,wDAEhBE,eAGAC,QAKAC,gBAEIL,QAAQC,IAAI,qDAGhBK,QAEIN,QAAQC,IAAI,8CCpBL,MAAMM,EACjBX,YAAYY,GACRV,KAAKU,QAAUA,EAInBC,kBAAkBC,GAGd,IADA,IAAIC,EAAkB,GACbC,EAAI,EAAGA,EAAIF,EAAIG,OAAQD,IAAK,CAIjC,IAHA,IAAIE,EAAwB,CAACJ,EAAIE,IAC7BG,EAAUL,EAAIE,GACdI,GAAoB,EACfC,EAAIL,EAAGK,EAAIP,EAAIG,OAAQI,IAAK,CACjC,IAAIC,EAAaR,EAAIO,GACjBC,EAAaH,GAAWC,EAAmBE,IAC3CJ,EAAsBK,KAAKD,GAC3BF,EAAmBE,GAG3BP,EAAgBQ,KAAKL,GAGzB,IACIM,EADAC,GAA4B,EAEhC,IAAK,IAAIT,KAAKD,EAAiB,CAC3B,IAAIW,EAAOX,EAAgBC,GACvBU,EAAKT,OAASQ,IACdA,EAA2BC,EAAKT,OAChCO,EAAqBE,GAI7B,IAAIC,EAAU,GACVC,EAAS,EACb,IAAK,IAAIZ,EAAI,EAAGA,EAAIF,EAAIG,OAAQD,IACxBY,EAASJ,EAAmBP,OAC5BU,EAAQJ,KAAKP,GAETF,EAAIE,IAAMQ,EAAmBI,GAC7BA,GAAU,EAEVD,EAAQJ,KAAKP,GAIzB,OAAOW,EAGXE,QACI3B,KAAK4B,aAAe,EACpB5B,KAAK6B,aAAe,EACpB,IAEIf,EACAgB,EAHAC,EAAgB/B,KAAKgC,SACrBC,EAAcjC,KAAKkC,OAGvBlC,KAAK6B,aACDM,KAAKC,IAAIH,EAAYlB,OAAQgB,EAAchB,QAC3CoB,KAAKE,IAAIJ,EAAYlB,OAAQgB,EAAchB,QAC3CkB,EAAYlB,OAASgB,EAAchB,QACnCe,EAAQ,oBACR9B,KAAKsC,eAAgB,GACdL,EAAYlB,QAAUgB,EAAchB,OAC3Cf,KAAKsC,eAAgB,EAErBtC,KAAKsC,eAAgB,EAMzB,IAAIC,GAAiB,EACrBvC,KAAK4B,aAAe,EACpB5B,KAAKwC,eAAiBT,EAAchB,OACpC,IAAI0B,EAAYN,KAAKC,IAAIL,EAAchB,OAAQkB,EAAYlB,QAC3D,IAAKD,EAAI,EAAGA,EAAI2B,EAAW3B,IACnBmB,EAAYnB,KAAOiB,EAAcjB,GACjCyB,GAAiB,EAEjBvC,KAAK4B,cAAgB,EAe7B,OAVIW,GACAvC,KAAKsC,cAGLR,EAAQ,UACAS,GAA2B,qBAATT,IAC1BA,EAAQ,uBAEZ9B,KAAK0C,mBACL1C,KAAK2C,YAAcb,EACZA,EAGXY,mBACI,IAAIE,EAA+B,GAApB5C,KAAK6B,aAChBgB,EAAQ7C,KAAKkC,OAAOnB,OACpB+B,EAAoB9C,KAAK4B,aAAeiB,EAAS,GAErD7C,KAAK+C,QAAUH,EAAWE,qBCtGnB,MAAME,UAAsBnD,EACvCI,eAEID,KAAKiD,WAAaC,SAASC,cAAc,OACzCnD,KAAKD,SAASqD,SAASC,YAAYrD,KAAKiD,YAE5C5C,cACIiD,EAAEtD,KAAKD,SAASwD,WAAWC,KAAK,YAGpClD,OACIN,KAAKyD,WAAa,EAClBzD,KAAK0D,QAAS,EAEd1D,KAAK2D,OAAS,IAAIlD,EAClB,IAAImD,EAAiB,GACrB,IAAK,IAAI9C,EAAI,EAAGA,EAAId,KAAKD,SAAS8D,YAAY9C,SAAUD,EACpD8C,EAAevC,KAAKrB,KAAKD,SAAS+D,eAAe9D,KAAKD,SAAS8D,YAAY/C,KAE/Ed,KAAKgC,SAAW4B,EAChB5D,KAAK2D,OAAO3B,SAAW4B,EACvB5D,KAAK+D,WAAa/D,KAAKD,SAASiE,cAAcC,cAAc,cAIhE7D,yBACIJ,KAAKkE,qBACLlE,KAAKmE,iBAITD,qBACSlE,KAAK0D,SACN1D,KAAKyD,aACLzD,KAAKO,gBACLP,KAAK2D,OAAOzB,OAASlC,KAAKD,SAASiE,cAAcI,sBACjDpE,KAAK2B,MAAQ3B,KAAK2D,OAAOhC,QACP,WAAd3B,KAAK2B,QACL2B,EAAEtD,KAAKD,SAASwD,WAAWc,KAAK,YAAY,GAC5CrE,KAAK0D,QAAS,IAK1BS,iBAEI,IAAIG,EADJtE,KAAK2B,MAAQ3B,KAAK2D,OAAOhB,YAEzB,IAAIoB,EAAaT,EAAEtD,KAAK+D,YAyBxB,GAxBAO,EAAehB,EAAEtD,KAAKiD,YAEH,YAAfjD,KAAK2B,QACLoC,EAAWQ,SAAS,WACpBD,EAAaE,OAAO,KACpBF,EAAaG,KAAK,QAAS,oBACvBzE,KAAKyD,WAAa,EAClBa,EAAaI,KACTpB,EAAEqB,KAAK,qBAAsB3E,KAAKyD,aAGtCa,EAAaI,KAAKpB,EAAEqB,KAAK,iCAE7B3E,KAAKyD,WAAa,GAGH,sBAAfzD,KAAK2B,QAELoC,EAAWQ,SAAS,aACpBD,EAAaE,OAAO,KACpBF,EAAaG,KAAK,QAAS,sBAC3BH,EAAaI,KAAKpB,EAAEqB,KAAK,0BAGV,wBAAf3E,KAAK2B,MAAiC,CACtC,IAAIiD,EAAe5E,KAAK+D,WAAWc,SAC/BC,EAAa,GACbC,EAAoB,GACpBC,EAAgB,GACpB,IAAK,IAAIlE,EAAI,EAAGA,EAAI8D,EAAa7D,OAAQD,IAAK,CAC1C,IAAImE,EAAQL,EAAa9D,GACrBoE,EAAQlF,KAAKgC,SAASmD,QAAQF,EAAMG,cAC1B,GAAVF,EACAF,EAAc3D,KAAK4D,IAEnBH,EAAWzD,KAAK4D,GAChBF,EAAkB1D,KAAK6D,IAG/B,IAAIG,EAAarF,KAAK2D,OAAOhD,kBAAkBoE,GAC/C,IAAK,IAAIjE,EAAI,EAAGA,EAAIuE,EAAWtE,OAAQD,IACnCkE,EAAc3D,KAAKyD,EAAWO,EAAWvE,KAE7CiD,EAAWQ,SAAS,aACpBD,EAAaE,OAAO,KACpBF,EAAaG,KAAK,QAAS,sBAC3B,IAAK,IAAI3D,EAAI,EAAGA,EAAIkE,EAAcjE,OAAQD,IACtCwC,EAAE0B,EAAclE,IAAIyD,SAAS,qBAEjCD,EAAaI,KAAKpB,EAAEqB,KAAK,4BAKjCpE,gBACI+C,EAAEtD,KAAK+D,YAAYuB,YAAY,qBAE/B,IADA,IAAIT,EAAW7E,KAAK+D,WAAWwB,WACtBzE,EAAI,EAAGA,EAAI+D,EAAS9D,OAAQD,IACjCwC,EAAEuB,EAAS/D,IAAIwE,YACX,qCAGRhC,EAAEtD,KAAKiD,YAAYuC,OAGvBhF,QACQR,KAAK0D,SACL1D,KAAKyD,WAAa,EAClBH,EAAEtD,KAAKD,SAASwD,WAAWc,KAAK,YAAY,GAC5CrE,KAAK0D,QAAS,GAElB1D,KAAKO,oDCvHTkF,EAAY,GAED,MAAMC,UAAoB7F,EAErCI,eACI,IAAI0F,EAASzC,SAASC,cAAc,OACpCG,EAAEqC,GAAQpB,SAAS,uBACnBvE,KAAK2F,OAASA,EACd3F,KAAK4F,OAAS1C,SAASC,cAAc,OACrCnD,KAAK4F,OAAO3G,GAAKe,KAAKD,SAAS8F,MAAQ,UACvCvC,EAAEtD,KAAK4F,QAAQE,IAAI,aAAc,UACjC,IAAIC,EAAW7C,SAASC,cAAc,OACtCG,EAAEyC,GAAUD,IAAI,QAAS,QACzB9F,KAAKD,SAASqD,SAASC,YAAY0C,GACnCJ,EAAOtC,YAAYrD,KAAK4F,QACxB5F,KAAKD,SAASqD,SAASC,YAAYsC,GACnCI,EAAW7C,SAASC,cAAc,OAClCG,EAAEyC,GAAUD,IAAI,QAAS,QACzB9F,KAAKD,SAASqD,SAASC,YAAY0C,GAGvC5B,iBACQnE,KAAKgG,aACL1C,EAAEtD,KAAK4F,QAAQpC,KAAKxD,KAAKgG,YACzB1C,EAAEtD,KAAK4F,QAAQE,IAAI,aAAc,YAErCxC,EAAEtD,KAAK2F,QAAQM,OAGnB1F,gBACI+C,EAAEtD,KAAK2F,QAAQH,OAGnBhF,QACIR,KAAKO,gBAGTD,OAGI,IAAI4F,EACAC,EACAC,YAAYC,sBACZH,EAAa,GAAGE,YAAYE,uBAAuBF,YAAYG,aAC/DJ,EAAWD,EAAa,aAExBA,EAAa,GACbC,EAAW,YAEf,IAAIK,EAAY,CACZC,WAAaC,GAAa,GAAGP,KAAYO,KAE7C,IAAIC,EAAO3G,KAAKD,SAChB,IAAUyG,GAAWI,MAAK,SAAUC,GAEhC,GAAIF,EAAKG,MAAO,CACRH,EAAKG,MAAMC,WAAW,cACtBJ,EAAKG,MAAQ,GAAGZ,IAAaS,EAAKG,SAEtCxD,EAAEqD,EAAKpD,WAAWkB,KAAK,WAAY,YACnC,IAAIuC,EAAa1D,EAAEqD,EAAKpD,WAAWC,OAEnC,GADAF,EAAEqD,EAAKpD,WAAWC,KAAKF,EAAEqB,KAAK,2BACxBgC,EAAKG,SAASrB,EAMhB,MAAoC,WAAhCA,EAAUkB,EAAKG,OAAOG,YACtBxB,EAAUkB,EAAKG,OAAOI,SAASC,MAAK,WAChCR,EAAKS,GAAK3B,EAAUkB,EAAKG,OAAOO,SAChC/D,EAAEqD,EAAKpD,WAAW+D,WAAW,YAC7BhE,EAAEqD,EAAKpD,WAAWC,KAAKwD,OAI/BL,EAAKS,GAAK3B,EAAUkB,EAAKG,OAAOO,SAChC/D,EAAEqD,EAAKpD,WAAW+D,WAAW,iBAC7BhE,EAAEqD,EAAKpD,WAAWC,KAAKwD,IAfvBvB,EAAUkB,EAAKG,OAAS,CACpBG,OAAQ,UACRC,SAAUK,OAAOC,YAgBzB,IAAIC,EAAM,IAAIC,eAEdD,EAAIE,KAAK,MAAOhB,EAAKG,OAAO,GAC5BW,EAAIG,aAAe,cACnBH,EAAII,OAAUxI,IACV,IAAIyI,EAAa,IAAIC,WAAWN,EAAIO,UACpCrB,EAAKS,GAAK,IAAIP,EAAIoB,SAASH,GAC3BrC,EAAUkB,EAAKG,OAAOO,SAAWV,EAAKS,GACtC9D,EAAEqD,EAAKpD,WAAWC,KAAKwD,GACvB1D,EAAEqD,EAAKpD,WAAW+D,WAAW,YAC7B7B,EAAUkB,EAAKG,OAAOM,GAAKU,EAC3BrC,EAAUkB,EAAKG,OAAOG,OAAS,QAC/BxB,EAAUkB,EAAKG,OAAOI,SAASxH,WAGnC+H,EAAIS,YAEJvB,EAAKS,GAAK,IAAIP,EAAIoB,YAM9B7H,yBAEIJ,KAAKD,SAASwD,UAAU4E,UAAW,EACnC,UACUnI,KAAKoI,UACb,MAAO/I,GACLa,QAAQC,IAAI,sBAAsBd,sBAEtCW,KAAKqI,mBACLrI,KAAKmE,iBAELnE,KAAKD,SAASwD,UAAU4E,UAAW,EAIvC/H,gBAEI,IAAIyF,EAAQ7F,KAAKD,SAAS8F,MAAQ,WAC9ByC,EAAUpF,SAASqF,eAAe1C,GAClCyC,GACAA,EAAQE,cAAcC,YAAYH,GAEtChF,EAAEtD,KAAK4F,QAAQpC,KAAK,IAEpB,IAAIkF,QAAc1I,KAAK2I,YACvB,IAAK3I,KAAKD,SAASqH,GAIf,YAHA9D,EAAEtD,KAAK4F,QAAQpC,KACX,2CAA2CxD,KAAK8G,SAKxD,IAAI8B,EAAK5I,KAAKD,SAASqH,GAAGyB,kBAAkBH,GAC5C1I,KAAK8I,QAAU,GACf,IACI,IAAK,IAAIC,KAAaH,EAAI,CACtB,IAAII,EAAUD,EAAUE,iBACxB,GAAID,EAAQjI,OAAS,EAAG,CAEpB,IAAImI,EAAO,GACX,KAAOH,EAAUI,QACbD,EAAK7H,KAAK0H,EAAUK,OAExBpJ,KAAK8I,QAAQzH,KAAK,CACd4F,OAAQ,UACR+B,QAASA,EACTK,OAAQH,EACRI,SAAUJ,EAAKnI,aAEhB,CACH,IACIwI,EADOR,EAAUS,mBACHC,OAAO,EAAG,GAAGC,cAC/BX,EAAUI,OAMK,WAAXI,GACW,WAAXA,GACW,WAAXA,EAEAvJ,KAAK8I,QAAQzH,KAAK,CACd4F,OAAQ,UACR0C,UAAWJ,EACXD,SAAUtJ,KAAKoH,GAAGwC,oBAGtB5J,KAAK8I,QAAQzH,KAAK,CAAE4F,OAAQ,cAI1C,MAAO5H,GACLW,KAAK8I,QAAQzH,KAAK,CACd4F,OAAQ,UACR4C,QAASxK,EAAEyK,WACXC,IAAKnB,EAAGoB,oBAIY,IAAxBhK,KAAK8I,QAAQ/H,QACbf,KAAK8I,QAAQzH,KAAK,CACd4F,OAAQ,UACR4C,QAAS,0BAIjBvB,EAAUpF,SAASC,cAAc,OACjCmF,EAAQrJ,GAAK4G,EACb7F,KAAK2F,OAAOtC,YAAYiF,GACxBhF,EAAEtD,KAAK2F,QAAQM,OAKf,IAAIgE,EAAcjK,KAAK8I,QACvB,IAAK,IAAIoB,KAAKD,EAAa,CACvB,IAAIE,EAAUjH,SAASC,cAAc,OAGrC,GAFAgH,EAAQC,aAAa,QAAS,iBAC9B9B,EAAQjF,YAAY8G,GACH,YAAbD,EAAEjD,OACF,GAAIiD,EAAElB,QAAS,CACX,IAAIqB,EAAWnH,SAASC,cAAc,OACtCgH,EAAQ9G,YAAYgH,GACpB,IAAIC,EAAY,IACZL,EAAYlJ,OAAS,IAAGuJ,EAAY,KACxCC,EAAYL,EAAGG,EAAUC,GACzB,IAAIE,EAAatH,SAASC,cAAc,OACpCsH,EAAsB,IAAfP,EAAEZ,SAAiB,SAAW,QACrCoB,EAAM,GAAKR,EAAEZ,SAAWmB,EAAO,WAC/BP,EAAEZ,SAAW,MACboB,GAAY,oCAEhBA,GAAY,IACZF,EAAWpF,YAAcsF,EACzBF,EAAWJ,aAAa,QAAS,yBACjCD,EAAQ9G,YAAYmH,QACjB,GAAIN,EAAEZ,SAAU,CACnB,IAAIkB,EAAatH,SAASC,cAAc,OACpCwH,EAAKT,EAAEP,UACXgB,GAAwC,MAA7BA,EAAGC,OAAOD,EAAG5J,OAAS,GAAa,KAAO,MACrD,IAAI0J,EAAsB,IAAfP,EAAEZ,SAAiB,SAAW,QACzCkB,EAAWpF,YAAc,GAAK8E,EAAEZ,SAAWmB,EAAOE,EAClDH,EAAWJ,aAAa,QAAS,yBACjCD,EAAQ9G,YAAYmH,OACjB,CACH,IAAIA,EAAatH,SAASC,cAAc,OACxCqH,EAAWpF,YAAc,uBACzBoF,EAAWJ,aAAa,QAAS,yBACjCD,EAAQ9G,YAAYmH,OAErB,CACH,IAAIA,EAAatH,SAASC,cAAc,OACxCqH,EAAWpF,YAAc8E,EAAEL,QAC3BW,EAAWJ,aAAa,QAAS,yBACjCD,EAAQ9G,YAAYmH,IAa5B,OARIxK,KAAKD,SAAS8K,OACd7K,KAAKgG,WAAahG,KAAK8K,UACnB9K,KAAK8I,QAAQ9I,KAAK8I,QAAQ/H,OAAS,IAGvCuC,EAAEtD,KAAK4F,QAAQE,IAAI,aAAc,UAG9BiF,QAAQrL,QAAQ,QAI3BU,kBAGI,IAAI4K,EAMJ,OAJIA,EADAhL,KAAKD,SAASkL,UACPjL,KAAKD,SAASiE,cAAckH,kBAE5BlL,KAAKD,SAASiE,cAAcI,sBAAsB+G,KAAK,KAAO,KAElEJ,QAAQrL,QAAQsL,GAI3B5K,uBAAuBgL,GAiBnB,GAAIpL,KAAKqL,aAAc,CACnB,IAAIC,EAAW,CACXC,MAAO,WACPC,OAAQxL,KAAKD,SAAS8F,MACtB4F,OAAQrF,YAAYqF,OACpBC,IAAK1L,KAAKqL,mBAEK,IAARD,IACPE,EAASF,IAAMA,SAEbpL,KAAKD,SAAS4L,aAAaL,IAKzCR,UAAUc,GACN,IAAIC,EAAQ7L,KAAKD,SAAS8K,OAAOiB,MAAM,MACvC9L,KAAK+L,OAAS,EACd/L,KAAKgM,OAAS,EAId,IAAIC,EAAS,GACbJ,EAAQA,EAAMK,QAAO,SAAUC,GAC3B,OAAOA,EAAEhH,QAAQ,WAAa,KAElC,IAAK,IAAIiH,KAAQP,EAAO,CACpB,IAAIQ,EAAQD,EAAKN,MAAM,OACvBO,EAAMC,QACN,IAAIC,EAAMF,EAAMC,QACZE,EAAOH,EAAMC,QACbG,EAAWJ,EAAMlB,KAAK,MACrBuB,EAAKC,GAAOJ,EAAIT,MAAM,KAC3BG,GAAUjM,KAAK4M,cACXF,EACAC,EACAH,EACAC,EACAb,GAEJK,GAAU,KAEd,IAAIY,EAAO,IAAM7M,KAAK+L,QAAW/L,KAAK+L,OAAS/L,KAAKgM,QAKpD,OAJAa,EAAMA,EAAIC,oBAAeC,EAAW,CAAEC,sBAAuB,IAC7Df,GAAU,cAAcjM,KAAK+L,iBAAiB/L,KAAK+L,OAAS/L,KAAKgM,oBAC/Ca,KAClB7M,KAAKqL,aAAe,WAAWwB,YAAc7M,KAAK+L,iBAAiB/L,KAAKgM,SACjEC,EAIXW,cAAcF,EAAKC,EAAKH,EAAMC,EAAUb,GAEpC,IAAIqB,EACArH,EAAS,GACb,IACIqH,EAASrB,EAAavC,OAAOqD,GAAKC,GACpC,MAAOtN,GACL,MAAgB,WAAZoN,GACAzM,KAAK+L,SACLnG,EAAS,0BAA0B8G,aAAeC,IAC3C/G,IAEPA,EAAS,wCAAwC8G,eAAiBC,IAC3D/G,GAyBf,MAtBkB,CACd,KAAM,SAAUsH,EAAUC,GACtB,OAAOD,GAAYC,GAEvB,KAAM,SAAUD,EAAUC,GACtB,OAAOD,GAAYC,GAEvB,IAAK,SAAUD,EAAUC,GACrB,OAAOD,EAAWC,GAEtB,IAAK,SAAUD,EAAUC,GACrB,OAAOD,EAAWC,IAGNX,GAAMS,EAAQR,IAE9B7G,EAAS,SAASqH,KAAUT,KAAQC,YAAmBC,YAAcd,EAAa5C,QAAQ2D,KAC1F3M,KAAK+L,WAELnG,EAAS,UAAUqH,KAAUT,KAAQC,YAAmBC,YAAcd,EAAa5C,QAAQ2D,KAC3F3M,KAAKgM,UAEFpG,GAIf,SAAS2E,EAAY6C,EAAWC,EAAW/C,GACvC,IACIgD,EADApE,EAAOkE,EAAU/D,OAED,IAAhBH,EAAKnI,SAELmI,EAAO,CAACkE,EAAUpE,QAAQlK,KAAKO,GAAM,QACrCiO,EAAW,CAAC,IAGhB,IAAIC,EAAM,IAAI,IAAaF,EAAW,CAClCnE,KAAMA,EACNoE,SAAUA,EACVE,MAAO,OACPC,OAAQnD,EACRoD,aAAa,EACbC,eAAgB,CAAEC,YAAY,GAC9BC,YAAY,EACZC,WAAYV,EAAUpE,QACtB+E,QAAQ,EACRC,QAAS,IACTC,SAAS,EACTC,cAAc,EACdC,WAAY,kCAIhB,IAAIC,EAAe,GACnB,GAAIhB,EAAU/D,OAAOtI,OAAS,EAC1B,IAAK,IAAID,EAAI,EAAGA,EAAIoI,EAAKnI,SACrBqN,GAA8Bb,EAAIc,aAAavN,KAC3CsN,EAAe9D,IAFUxJ,KAQrC,OAFAyM,EAAIe,eAAe,CAAEb,OAAQW,IAEtBb,EC9ZX,SAASgB,EAAQC,EAAQC,GACvB,IAAIjP,EAAOC,OAAOD,KAAKgP,GAEvB,GAAI/O,OAAOiP,sBAAuB,CAChC,IAAIC,EAAUlP,OAAOiP,sBAAsBF,GAEvCC,IACFE,EAAUA,EAAQzC,QAAO,SAAU0C,GACjC,OAAOnP,OAAOoP,yBAAyBL,EAAQI,GAAKE,eAIxDtP,EAAK6B,KAAK0N,MAAMvP,EAAMmP,GAGxB,OAAOnP,EAGT,SAASwP,EAAeC,GACtB,IAAK,IAAInO,EAAI,EAAGA,EAAIoO,UAAUnO,OAAQD,IAAK,CACzC,IAAIqO,EAAyB,MAAhBD,UAAUpO,GAAaoO,UAAUpO,GAAK,GAE/CA,EAAI,EACNyN,EAAQ9O,OAAO0P,IAAS,GAAMC,SAAQ,SAAUC,GAC9CC,EAAgBL,EAAQI,EAAKF,EAAOE,OAE7B5P,OAAO8P,0BAChB9P,OAAO+P,iBAAiBP,EAAQxP,OAAO8P,0BAA0BJ,IAEjEZ,EAAQ9O,OAAO0P,IAASC,SAAQ,SAAUC,GACxC5P,OAAOgQ,eAAeR,EAAQI,EAAK5P,OAAOoP,yBAAyBM,EAAQE,OAKjF,OAAOJ,EAGT,SAASS,EAAQC,GAaf,OATED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAI7P,cAAgB8P,QAAUD,IAAQC,OAAOE,UAAY,gBAAkBH,GAItHD,EAAQC,GAGjB,SAASL,EAAgBK,EAAKN,EAAKU,GAYjC,OAXIV,KAAOM,EACTlQ,OAAOgQ,eAAeE,EAAKN,EAAK,CAC9BU,MAAOA,EACPjB,YAAY,EACZkB,cAAc,EACdC,UAAU,IAGZN,EAAIN,GAAOU,EAGNJ,EAGT,SAASO,IAeP,OAdAA,EAAWzQ,OAAO0Q,QAAU,SAAUlB,GACpC,IAAK,IAAInO,EAAI,EAAGA,EAAIoO,UAAUnO,OAAQD,IAAK,CACzC,IAAIqO,EAASD,UAAUpO,GAEvB,IAAK,IAAIuO,KAAOF,EACV1P,OAAOqQ,UAAUM,eAAeC,KAAKlB,EAAQE,KAC/CJ,EAAOI,GAAOF,EAAOE,IAK3B,OAAOJ,GAGFiB,EAASnB,MAAM/O,KAAMkP,WAkB9B,SAASoB,EAAyBnB,EAAQoB,GACxC,GAAc,MAAVpB,EAAgB,MAAO,GAE3B,IAEIE,EAAKvO,EAFLmO,EAlBN,SAAuCE,EAAQoB,GAC7C,GAAc,MAAVpB,EAAgB,MAAO,GAC3B,IAEIE,EAAKvO,EAFLmO,EAAS,GACTuB,EAAa/Q,OAAOD,KAAK2P,GAG7B,IAAKrO,EAAI,EAAGA,EAAI0P,EAAWzP,OAAQD,IACjCuO,EAAMmB,EAAW1P,GACbyP,EAASpL,QAAQkK,IAAQ,IAC7BJ,EAAOI,GAAOF,EAAOE,IAGvB,OAAOJ,EAMMwB,CAA8BtB,EAAQoB,GAInD,GAAI9Q,OAAOiP,sBAAuB,CAChC,IAAIgC,EAAmBjR,OAAOiP,sBAAsBS,GAEpD,IAAKrO,EAAI,EAAGA,EAAI4P,EAAiB3P,OAAQD,IACvCuO,EAAMqB,EAAiB5P,GACnByP,EAASpL,QAAQkK,IAAQ,GACxB5P,OAAOqQ,UAAUa,qBAAqBN,KAAKlB,EAAQE,KACxDJ,EAAOI,GAAOF,EAAOE,IAIzB,OAAOJ,EAKT,SAAS2B,EAAUC,GACjB,GAAsB,oBAAXC,QAA0BA,OAAOC,UAC1C,QAAuBA,UAAUH,UAAUI,MAAMH,GAIrD,IAAII,EAAaL,EAAU,yDACvBM,EAAON,EAAU,SACjBO,EAAUP,EAAU,YACpBQ,EAASR,EAAU,aAAeA,EAAU,aAAeA,EAAU,YACrES,EAAMT,EAAU,mBAChBU,EAAmBV,EAAU,YAAcA,EAAU,YAErDW,EAAc,CAChBC,SAAS,EACTC,SAAS,GAGX,SAASC,EAAGC,EAAIpG,EAAOqG,GACrBD,EAAGE,iBAAiBtG,EAAOqG,GAAKX,GAAcM,GAGhD,SAASO,EAAIH,EAAIpG,EAAOqG,GACtBD,EAAGI,oBAAoBxG,EAAOqG,GAAKX,GAAcM,GAGnD,SAASS,EAETL,EAEAM,GACE,GAAKA,EAAL,CAGA,GAFgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASC,UAAU,IAElDP,EACF,IACE,GAAIA,EAAGK,QACL,OAAOL,EAAGK,QAAQC,GACb,GAAIN,EAAGQ,kBACZ,OAAOR,EAAGQ,kBAAkBF,GACvB,GAAIN,EAAGS,sBACZ,OAAOT,EAAGS,sBAAsBH,GAElC,MAAOI,GACP,OAAO,EAIX,OAAO,GAGT,SAASC,EAAgBX,GACvB,OAAOA,EAAGY,MAAQZ,IAAOzO,UAAYyO,EAAGY,KAAKC,SAAWb,EAAGY,KAAOZ,EAAGc,WAGvE,SAASC,EAETf,EAEAM,EAEAU,EAAKC,GACH,GAAIjB,EAAI,CACNgB,EAAMA,GAAOzP,SAEb,EAAG,CACD,GAAgB,MAAZ+O,IAAqC,MAAhBA,EAAS,GAAaN,EAAGc,aAAeE,GAAOX,EAAQL,EAAIM,GAAYD,EAAQL,EAAIM,KAAcW,GAAcjB,IAAOgB,EAC7I,OAAOhB,EAGT,GAAIA,IAAOgB,EAAK,YAEThB,EAAKW,EAAgBX,IAGhC,OAAO,KAGT,IAgWIkB,EAhWAC,EAAU,OAEd,SAASC,EAAYpB,EAAIqB,EAAMlR,GAC7B,GAAI6P,GAAMqB,EACR,GAAIrB,EAAGsB,UACLtB,EAAGsB,UAAUnR,EAAQ,MAAQ,UAAUkR,OAClC,CACL,IAAIE,GAAa,IAAMvB,EAAGuB,UAAY,KAAKC,QAAQL,EAAS,KAAKK,QAAQ,IAAMH,EAAO,IAAK,KAC3FrB,EAAGuB,WAAaA,GAAapR,EAAQ,IAAMkR,EAAO,KAAKG,QAAQL,EAAS,MAK9E,SAAShN,EAAI6L,EAAItN,EAAM+O,GACrB,IAAIC,EAAQ1B,GAAMA,EAAG0B,MAErB,GAAIA,EAAO,CACT,QAAY,IAARD,EAOF,OANIlQ,SAASoQ,aAAepQ,SAASoQ,YAAYC,iBAC/CH,EAAMlQ,SAASoQ,YAAYC,iBAAiB5B,EAAI,IACvCA,EAAG6B,eACZJ,EAAMzB,EAAG6B,mBAGK,IAATnP,EAAkB+O,EAAMA,EAAI/O,GAE7BA,KAAQgP,IAAsC,IAA5BhP,EAAKc,QAAQ,YACnCd,EAAO,WAAaA,GAGtBgP,EAAMhP,GAAQ+O,GAAsB,iBAARA,EAAmB,GAAK,OAK1D,SAASK,EAAO9B,EAAI+B,GAClB,IAAIC,EAAoB,GAExB,GAAkB,iBAAPhC,EACTgC,EAAoBhC,OAEpB,EAAG,CACD,IAAIiC,EAAY9N,EAAI6L,EAAI,aAEpBiC,GAA2B,SAAdA,IACfD,EAAoBC,EAAY,IAAMD,UAIhCD,IAAa/B,EAAKA,EAAGc,aAGjC,IAAIoB,EAAW/C,OAAOgD,WAAahD,OAAOiD,iBAAmBjD,OAAOkD,WAAalD,OAAOmD,YAGxF,OAAOJ,GAAY,IAAIA,EAASF,GAGlC,SAASO,EAAKvB,EAAKwB,EAAStE,GAC1B,GAAI8C,EAAK,CACP,IAAIyB,EAAOzB,EAAI0B,qBAAqBF,GAChCrT,EAAI,EACJwT,EAAIF,EAAKrT,OAEb,GAAI8O,EACF,KAAO/O,EAAIwT,EAAGxT,IACZ+O,EAASuE,EAAKtT,GAAIA,GAItB,OAAOsT,EAGT,MAAO,GAGT,SAASG,IAGP,OAFuBrR,SAASsR,kBAKvBtR,SAASuR,gBAcpB,SAASC,EAAQ/C,EAAIgD,EAA2BC,EAA2BC,EAAWxH,GACpF,GAAKsE,EAAGmD,uBAAyBnD,IAAOb,OAAxC,CACA,IAAIiE,EAAQC,EAAKC,EAAMC,EAAQC,EAAO1H,EAAQD,EAmB9C,GAjBImE,IAAOb,QAAUa,EAAGc,YAAcd,IAAO4C,KAE3CS,GADAD,EAASpD,EAAGmD,yBACCE,IACbC,EAAOF,EAAOE,KACdC,EAASH,EAAOG,OAChBC,EAAQJ,EAAOI,MACf1H,EAASsH,EAAOtH,OAChBD,EAAQuH,EAAOvH,QAEfwH,EAAM,EACNC,EAAO,EACPC,EAASpE,OAAOsE,YAChBD,EAAQrE,OAAOuE,WACf5H,EAASqD,OAAOsE,YAChB5H,EAAQsD,OAAOuE,aAGZV,GAA6BC,IAA8BjD,IAAOb,SAErEzD,EAAYA,GAAasE,EAAGc,YAGvBxB,GACH,GACE,GAAI5D,GAAaA,EAAUyH,wBAA0D,SAAhChP,EAAIuH,EAAW,cAA2BuH,GAA4D,WAA/B9O,EAAIuH,EAAW,aAA2B,CACpK,IAAIiI,EAAgBjI,EAAUyH,wBAE9BE,GAAOM,EAAcN,IAAMO,SAASzP,EAAIuH,EAAW,qBACnD4H,GAAQK,EAAcL,KAAOM,SAASzP,EAAIuH,EAAW,sBACrD6H,EAASF,EAAMD,EAAOtH,OACtB0H,EAAQF,EAAOF,EAAOvH,MACtB,aAIKH,EAAYA,EAAUoF,YAInC,GAAIoC,GAAalD,IAAOb,OAAQ,CAE9B,IAAI0E,EAAW/B,EAAOpG,GAAasE,GAC/B8D,EAASD,GAAYA,EAASE,EAC9BC,EAASH,GAAYA,EAASI,EAE9BJ,IAKFN,GAJAF,GAAOW,IAGPlI,GAAUkI,GAEVR,GAJAF,GAAQQ,IACRjI,GAASiI,IAOb,MAAO,CACLT,IAAKA,EACLC,KAAMA,EACNC,OAAQA,EACRC,MAAOA,EACP3H,MAAOA,EACPC,OAAQA,IAYZ,SAASoI,EAAelE,EAAImE,EAAQC,GAKlC,IAJA,IAAIC,EAASC,EAA2BtE,GAAI,GACxCuE,EAAYxB,EAAQ/C,GAAImE,GAGrBE,GAAQ,CACb,IAAIG,EAAgBzB,EAAQsB,GAAQD,GASpC,KANmB,QAAfA,GAAuC,SAAfA,EAChBG,GAAaC,EAEbD,GAAaC,GAGX,OAAOH,EACrB,GAAIA,IAAWzB,IAA6B,MAC5CyB,EAASC,EAA2BD,GAAQ,GAG9C,OAAO,EAYT,SAASI,EAASzE,EAAI0E,EAAUC,EAASC,GAKvC,IAJA,IAAIC,EAAe,EACf1V,EAAI,EACJ+D,EAAW8M,EAAG9M,SAEX/D,EAAI+D,EAAS9D,QAAQ,CAC1B,GAAkC,SAA9B8D,EAAS/D,GAAGuS,MAAMoD,SAAsB5R,EAAS/D,KAAO4V,GAASC,QAAUJ,GAAiB1R,EAAS/D,KAAO4V,GAASE,UAAYlE,EAAQ7N,EAAS/D,GAAIwV,EAAQO,UAAWlF,GAAI,GAAQ,CACvL,GAAI6E,IAAiBH,EACnB,OAAOxR,EAAS/D,GAGlB0V,IAGF1V,IAGF,OAAO,KAUT,SAASgW,EAAUnF,EAAIM,GAGrB,IAFA,IAAI8E,EAAOpF,EAAGqF,iBAEPD,IAASA,IAASL,GAASC,OAAkC,SAAzB7Q,EAAIiR,EAAM,YAAyB9E,IAAaD,EAAQ+E,EAAM9E,KACvG8E,EAAOA,EAAKE,uBAGd,OAAOF,GAAQ,KAWjB,SAAS7R,EAAMyM,EAAIM,GACjB,IAAI/M,EAAQ,EAEZ,IAAKyM,IAAOA,EAAGc,WACb,OAAQ,EAKV,KAAOd,EAAKA,EAAGsF,wBACqB,aAA9BtF,EAAGuF,SAASC,eAAgCxF,IAAO+E,GAASU,OAAWnF,IAAYD,EAAQL,EAAIM,IACjG/M,IAIJ,OAAOA,EAUT,SAASmS,EAAwB1F,GAC/B,IAAI2F,EAAa,EACbC,EAAY,EACZC,EAAcjD,IAElB,GAAI5C,EACF,EAAG,CACD,IAAI6D,EAAW/B,EAAO9B,GAClB8D,EAASD,EAASE,EAClBC,EAASH,EAASI,EACtB0B,GAAc3F,EAAG8F,WAAahC,EAC9B8B,GAAa5F,EAAG+F,UAAY/B,QACrBhE,IAAO6F,IAAgB7F,EAAKA,EAAGc,aAG1C,MAAO,CAAC6E,EAAYC,GAsBtB,SAAStB,EAA2BtE,EAAIgG,GAEtC,IAAKhG,IAAOA,EAAGmD,sBAAuB,OAAOP,IAC7C,IAAIqD,EAAOjG,EACPkG,GAAU,EAEd,GAEE,GAAID,EAAKE,YAAcF,EAAKG,aAAeH,EAAKI,aAAeJ,EAAKK,aAAc,CAChF,IAAIC,EAAUpS,EAAI8R,GAElB,GAAIA,EAAKE,YAAcF,EAAKG,cAAqC,QAArBG,EAAQC,WAA4C,UAArBD,EAAQC,YAA0BP,EAAKI,aAAeJ,EAAKK,eAAsC,QAArBC,EAAQE,WAA4C,UAArBF,EAAQE,WAAwB,CACpN,IAAKR,EAAK9C,uBAAyB8C,IAAS1U,SAASmV,KAAM,OAAO9D,IAClE,GAAIsD,GAAWF,EAAa,OAAOC,EACnCC,GAAU,UAKPD,EAAOA,EAAKnF,YAErB,OAAO8B,IAeT,SAAS+D,EAAYC,EAAOC,GAC1B,OAAOrW,KAAKsW,MAAMF,EAAMvD,OAAS7S,KAAKsW,MAAMD,EAAMxD,MAAQ7S,KAAKsW,MAAMF,EAAMtD,QAAU9S,KAAKsW,MAAMD,EAAMvD,OAAS9S,KAAKsW,MAAMF,EAAM9K,UAAYtL,KAAKsW,MAAMD,EAAM/K,SAAWtL,KAAKsW,MAAMF,EAAM/K,SAAWrL,KAAKsW,MAAMD,EAAMhL,OAKvN,SAASkL,EAASC,EAAUC,GAC1B,OAAO,WACL,IAAK/F,EAAkB,CACrB,IAAIgG,EAAO3J,UACP4J,EAAQ9Y,KAEQ,IAAhB6Y,EAAK9X,OACP4X,EAAStI,KAAKyI,EAAOD,EAAK,IAE1BF,EAAS5J,MAAM+J,EAAOD,GAGxBhG,EAAmBkG,YAAW,WAC5BlG,OAAmB,IAClB+F,KAUT,SAASI,EAASrH,EAAIsH,EAAGC,GACvBvH,EAAG8F,YAAcwB,EACjBtH,EAAG+F,WAAawB,EAGlB,SAAS9B,EAAMzF,GACb,IAAIwH,EAAUrI,OAAOqI,QACjB7V,EAAIwN,OAAOvJ,QAAUuJ,OAAOsI,MAEhC,OAAID,GAAWA,EAAQE,IACdF,EAAQE,IAAI1H,GAAI2H,WAAU,GACxBhW,EACFA,EAAEqO,GAAIyF,OAAM,GAAM,GAElBzF,EAAG2H,WAAU,GAIxB,IAAIC,EAAU,YAAa,IAAIC,MAAOC,UAyJtC,IAAIC,EAAU,GACVC,EAAW,CACbC,qBAAqB,GAEnBC,GAAgB,CAClBC,MAAO,SAAeC,GAEpB,IAAK,IAAIC,KAAUL,EACbA,EAASvJ,eAAe4J,MAAaA,KAAUD,KACjDA,EAAOC,GAAUL,EAASK,IAI9BN,EAAQtK,SAAQ,SAAU6K,GACxB,GAAIA,EAAEC,aAAeH,EAAOG,WAC1B,KAAM,iCAAiCC,OAAOJ,EAAOG,WAAY,sBAGrER,EAAQrY,KAAK0Y,IAEfK,YAAa,SAAqBC,EAAWC,EAAUC,GACrD,IAAIzB,EAAQ9Y,KAEZA,KAAKwa,eAAgB,EAErBD,EAAIE,OAAS,WACX3B,EAAM0B,eAAgB,GAGxB,IAAIE,EAAkBL,EAAY,SAClCX,EAAQtK,SAAQ,SAAU2K,GACnBO,EAASP,EAAOG,cAEjBI,EAASP,EAAOG,YAAYQ,IAC9BJ,EAASP,EAAOG,YAAYQ,GAAiB1L,EAAe,CAC1DsL,SAAUA,GACTC,IAKDD,EAAShE,QAAQyD,EAAOG,aAAeI,EAASP,EAAOG,YAAYG,IACrEC,EAASP,EAAOG,YAAYG,GAAWrL,EAAe,CACpDsL,SAAUA,GACTC,SAITI,kBAAmB,SAA2BL,EAAU3I,EAAIgI,EAAUrD,GAYpE,IAAK,IAAI0D,KAXTN,EAAQtK,SAAQ,SAAU2K,GACxB,IAAIG,EAAaH,EAAOG,WACxB,GAAKI,EAAShE,QAAQ4D,IAAgBH,EAAOH,oBAA7C,CACA,IAAIgB,EAAc,IAAIb,EAAOO,EAAU3I,EAAI2I,EAAShE,SACpDsE,EAAYN,SAAWA,EACvBM,EAAYtE,QAAUgE,EAAShE,QAC/BgE,EAASJ,GAAcU,EAEvB1K,EAASyJ,EAAUiB,EAAYjB,cAGdW,EAAShE,QAC1B,GAAKgE,EAAShE,QAAQlG,eAAe4J,GAArC,CACA,IAAIa,EAAW7a,KAAK8a,aAAaR,EAAUN,EAAQM,EAAShE,QAAQ0D,SAE5C,IAAba,IACTP,EAAShE,QAAQ0D,GAAUa,KAIjCE,mBAAoB,SAA4B/H,EAAMsH,GACpD,IAAIU,EAAkB,GAMtB,OALAtB,EAAQtK,SAAQ,SAAU2K,GACc,mBAA3BA,EAAOiB,iBAElB9K,EAAS8K,EAAiBjB,EAAOiB,gBAAgB3K,KAAKiK,EAASP,EAAOG,YAAalH,OAE9EgI,GAETF,aAAc,SAAsBR,EAAUtH,EAAMjD,GAClD,IAAIkL,EASJ,OARAvB,EAAQtK,SAAQ,SAAU2K,GAEnBO,EAASP,EAAOG,aAEjBH,EAAOmB,iBAA2D,mBAAjCnB,EAAOmB,gBAAgBlI,KAC1DiI,EAAgBlB,EAAOmB,gBAAgBlI,GAAM3C,KAAKiK,EAASP,EAAOG,YAAanK,OAG5EkL,IA6DPE,GAAY,CAAC,OAEbf,GAAc,SAAqBC,EAAWC,GAChD,IAAIc,EAAOlM,UAAUnO,OAAS,QAAsBgM,IAAjBmC,UAAU,GAAmBA,UAAU,GAAK,GAC3EmM,EAAgBD,EAAKb,IACrBrR,EAAOoH,EAAyB8K,EAAMD,IAE1CtB,GAAcO,YAAYkB,KAAK5E,GAA/BmD,CAAyCQ,EAAWC,EAAUtL,EAAe,CAC3EuM,OAAQA,GACRC,SAAUA,GACVC,QAASA,GACTC,OAAQA,GACRC,OAAQA,GACRC,WAAYA,GACZC,QAASA,GACTC,YAAaA,GACbC,YAAaC,GACbC,YAAaA,GACbC,eAAgBxF,GAASyF,OACzBd,cAAeA,EACfe,SAAUA,GACVC,kBAAmBA,GACnBC,SAAUA,GACVC,kBAAmBA,GACnBC,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdd,IAAc,GAEhBe,cAAe,WACbf,IAAc,GAEhBgB,sBAAuB,SAA+B9J,GACpD+J,GAAe,CACbzC,SAAUA,EACVtH,KAAMA,EACNqI,cAAeA,MAGlBnS,KAGL,SAAS6T,GAAeC,IAnGxB,SAAuB5B,GACrB,IAAId,EAAWc,EAAKd,SAChBoB,EAASN,EAAKM,OACd1I,EAAOoI,EAAKpI,KACZiK,EAAW7B,EAAK6B,SAChBpB,EAAUT,EAAKS,QACfqB,EAAO9B,EAAK8B,KACZC,EAAS/B,EAAK+B,OACdf,EAAWhB,EAAKgB,SAChBE,EAAWlB,EAAKkB,SAChBD,EAAoBjB,EAAKiB,kBACzBE,EAAoBnB,EAAKmB,kBACzBlB,EAAgBD,EAAKC,cACrBY,EAAcb,EAAKa,YACnBmB,EAAuBhC,EAAKgC,qBAEhC,GADA9C,EAAWA,GAAYoB,GAAUA,EAAOnC,GACxC,CACA,IAAIgB,EACAjE,EAAUgE,EAAShE,QACnB+G,EAAS,KAAOrK,EAAKpI,OAAO,GAAGuM,cAAgBnE,EAAKvJ,OAAO,IAE3DqH,OAAOwM,aAAgBrM,GAAeC,GAMxCqJ,EAAMrX,SAASqa,YAAY,UACvBC,UAAUxK,GAAM,GAAM,GAN1BuH,EAAM,IAAI+C,YAAYtK,EAAM,CAC1ByK,SAAS,EACTC,YAAY,IAOhBnD,EAAIoD,GAAKT,GAAQxB,EACjBnB,EAAIqD,KAAOT,GAAUzB,EACrBnB,EAAIsD,KAAOZ,GAAYvB,EACvBnB,EAAInD,MAAQyE,EACZtB,EAAI6B,SAAWA,EACf7B,EAAI+B,SAAWA,EACf/B,EAAI8B,kBAAoBA,EACxB9B,EAAIgC,kBAAoBA,EACxBhC,EAAIc,cAAgBA,EACpBd,EAAIuD,SAAW7B,EAAcA,EAAY8B,iBAAchR,EAEvD,IAAIiR,EAAqBhP,EAAeA,EAAe,GAAIoO,GAAuBvD,GAAckB,mBAAmB/H,EAAMsH,IAEzH,IAAK,IAAIN,KAAUgE,EACjBzD,EAAIP,GAAUgE,EAAmBhE,GAG/B0B,GACFA,EAAOuC,cAAc1D,GAGnBjE,EAAQ+G,IACV/G,EAAQ+G,GAAQhN,KAAKiK,EAAUC,IA+CjC0D,CAAcjP,EAAe,CAC3BiN,YAAaA,GACbJ,QAASA,GACToB,SAAU1B,GACVG,OAAQA,GACRU,SAAUA,GACVC,kBAAmBA,GACnBC,SAAUA,GACVC,kBAAmBA,IAClBS,IAGL,IAAIzB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAM,GACAE,GACAD,GACAE,GACA2B,GACAjC,GAIAkC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAxC,GACAyC,GACAC,GAGAC,GAEJC,GAhBIC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAEvCC,IAAU,EACNC,GAAoB,GAGpBC,GAAqC,oBAAbnc,SACxBoc,GAA0BjO,EAC1BkO,GAAmBrO,GAAQD,EAAa,WAAa,QAEzDuO,GAAmBH,KAAmB/N,IAAqBD,GAAO,cAAenO,SAASC,cAAc,OACpGsc,GAA0B,WAC5B,GAAKJ,GAAL,CAEA,GAAIpO,EACF,OAAO,EAGT,IAAIU,EAAKzO,SAASC,cAAc,KAEhC,OADAwO,EAAG0B,MAAMqM,QAAU,sBACe,SAA3B/N,EAAG0B,MAAMsM,eATY,GAW1BC,GAAmB,SAA0BjO,EAAI2E,GACnD,IAAIuJ,EAAQ/Z,EAAI6L,GACZmO,EAAUvK,SAASsK,EAAMrS,OAAS+H,SAASsK,EAAME,aAAexK,SAASsK,EAAMG,cAAgBzK,SAASsK,EAAMI,iBAAmB1K,SAASsK,EAAMK,kBAChJC,EAAS/J,EAASzE,EAAI,EAAG2E,GACzB8J,EAAShK,EAASzE,EAAI,EAAG2E,GACzB+J,EAAgBF,GAAUra,EAAIqa,GAC9BG,EAAiBF,GAAUta,EAAIsa,GAC/BG,EAAkBF,GAAiB9K,SAAS8K,EAAcG,YAAcjL,SAAS8K,EAAcI,aAAe/L,EAAQyL,GAAQ3S,MAC9HkT,EAAmBJ,GAAkB/K,SAAS+K,EAAeE,YAAcjL,SAAS+K,EAAeG,aAAe/L,EAAQ0L,GAAQ5S,MAEtI,GAAsB,SAAlBqS,EAAMpJ,QACR,MAA+B,WAAxBoJ,EAAMc,eAAsD,mBAAxBd,EAAMc,cAAqC,WAAa,aAGrG,GAAsB,SAAlBd,EAAMpJ,QACR,OAAOoJ,EAAMe,oBAAoB9U,MAAM,KAAK/K,QAAU,EAAI,WAAa,aAGzE,GAAIof,GAAUE,EAAqB,OAAgC,SAA3BA,EAAqB,MAAc,CACzE,IAAIQ,EAAgD,SAA3BR,EAAqB,MAAe,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAeQ,OAAoBR,EAAeQ,QAAUD,EAAmC,aAAb,WAGtG,OAAOV,IAAqC,UAA1BE,EAAc5J,SAAiD,SAA1B4J,EAAc5J,SAAgD,UAA1B4J,EAAc5J,SAAiD,SAA1B4J,EAAc5J,SAAsB8J,GAAmBT,GAAuC,SAA5BD,EAAMN,KAAgCa,GAAsC,SAA5BP,EAAMN,KAAgCgB,EAAkBG,EAAmBZ,GAAW,WAAa,cAiCnViB,GAAgB,SAAuBzK,GACzC,SAAS0K,EAAKjR,EAAOkR,GACnB,OAAO,SAAUtD,EAAIC,EAAMrC,EAAQhB,GACjC,IAAI2G,EAAYvD,EAAGrH,QAAQ6K,MAAMnO,MAAQ4K,EAAKtH,QAAQ6K,MAAMnO,MAAQ2K,EAAGrH,QAAQ6K,MAAMnO,OAAS4K,EAAKtH,QAAQ6K,MAAMnO,KAEjH,GAAa,MAATjD,IAAkBkR,GAAQC,GAG5B,OAAO,EACF,GAAa,MAATnR,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAIkR,GAAkB,UAAVlR,EACjB,OAAOA,EACF,GAAqB,mBAAVA,EAChB,OAAOiR,EAAKjR,EAAM4N,EAAIC,EAAMrC,EAAQhB,GAAM0G,EAAnCD,CAAyCrD,EAAIC,EAAMrC,EAAQhB,GAElE,IAAI6G,GAAcH,EAAOtD,EAAKC,GAAMtH,QAAQ6K,MAAMnO,KAClD,OAAiB,IAAVjD,GAAmC,iBAAVA,GAAsBA,IAAUqR,GAAcrR,EAAM5E,MAAQ4E,EAAM5K,QAAQic,IAAe,GAK/H,IAAID,EAAQ,GACRE,EAAgB/K,EAAQ6K,MAEvBE,GAA2C,UAA1B3R,EAAQ2R,KAC5BA,EAAgB,CACdrO,KAAMqO,IAIVF,EAAMnO,KAAOqO,EAAcrO,KAC3BmO,EAAMG,UAAYN,EAAKK,EAAcJ,MAAM,GAC3CE,EAAMI,SAAWP,EAAKK,EAAcG,KACpCL,EAAMM,YAAcJ,EAAcI,YAClCnL,EAAQ6K,MAAQA,GAEd1E,GAAsB,YACnBgD,IAA2BhE,IAC9B3V,EAAI2V,GAAS,UAAW,SAGxBkB,GAAwB,YACrB8C,IAA2BhE,IAC9B3V,EAAI2V,GAAS,UAAW,KAKxB4D,IACFnc,SAAS2O,iBAAiB,SAAS,SAAU0I,GAC3C,GAAIuE,GAKF,OAJAvE,EAAImH,iBACJnH,EAAIoH,iBAAmBpH,EAAIoH,kBAC3BpH,EAAIqH,0BAA4BrH,EAAIqH,2BACpC9C,IAAkB,GACX,KAER,GAGL,IAAI+C,GAAgC,SAAuCtH,GACzE,GAAIgB,GAAQ,CACVhB,EAAMA,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,EAErC,IAAIwH,GAhF2D9I,EAgFrBsB,EAAIyH,QAhFoB9I,EAgFXqB,EAAI0H,QA9E7DlD,GAAUmD,MAAK,SAAU5H,GACvB,IAAI6H,EAAY7H,EAASf,GAASjD,QAAQ8L,qBAC1C,GAAKD,IAAarL,EAAUwD,GAA5B,CACA,IAAI+H,EAAO3N,EAAQ4F,GACfgI,EAAqBrJ,GAAKoJ,EAAKpN,KAAOkN,GAAalJ,GAAKoJ,EAAKlN,MAAQgN,EACrEI,EAAmBrJ,GAAKmJ,EAAKrN,IAAMmN,GAAajJ,GAAKmJ,EAAKnN,OAASiN,EAEvE,OAAIG,GAAsBC,EACjBC,EAAMlI,OADf,MAIKkI,GAqEL,GAAIT,EAAS,CAEX,IAAIxW,EAAQ,GAEZ,IAAK,IAAIzK,KAAKyZ,EACRA,EAAInK,eAAetP,KACrByK,EAAMzK,GAAKyZ,EAAIzZ,IAInByK,EAAM0D,OAAS1D,EAAMmQ,OAASqG,EAC9BxW,EAAMmW,oBAAiB,EACvBnW,EAAMoW,qBAAkB,EAExBI,EAAQxI,GAASkJ,YAAYlX,IAhGL,IAAqC0N,EAAGC,EAChEsJ,GAoGFE,GAAwB,SAA+BnI,GACrDgB,IACFA,GAAO9I,WAAW8G,GAASoJ,iBAAiBpI,EAAItL,SAUpD,SAASyH,GAAS/E,EAAI2E,GACpB,IAAM3E,IAAMA,EAAGa,UAA4B,IAAhBb,EAAGa,SAC5B,KAAM,8CAA8C2H,OAAO,GAAGrQ,SAASuG,KAAKsB,IAG9E3R,KAAK2R,GAAKA,EAEV3R,KAAKsW,QAAUA,EAAUpG,EAAS,GAAIoG,GAEtC3E,EAAG4H,GAAWvZ,KACd,IA1jBI4iB,EADAC,EA2jBAlJ,EAAW,CACbwH,MAAO,KACP2B,MAAM,EACN3a,UAAU,EACV4a,MAAO,KACPC,OAAQ,KACRnM,UAAW,WAAWzK,KAAKuF,EAAGuF,UAAY,MAAQ,KAClD+L,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBC,UAAW,WACT,OAAOzD,GAAiBjO,EAAI3R,KAAKsW,UAEnCgN,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXC,OAAQ,SACRvX,OAAQ,KACRwX,iBAAiB,EACjBC,UAAW,EACXC,OAAQ,KACRC,QAAS,SAAiBC,EAAcvI,GACtCuI,EAAaD,QAAQ,OAAQtI,EAAOnW,cAEtC2e,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZC,MAAO,EACPC,kBAAkB,EAClBC,qBAAsBC,OAAO9O,SAAW8O,OAASvT,QAAQyE,SAASzE,OAAOwT,iBAAkB,KAAO,EAClGC,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACd1L,EAAG,EACHC,EAAG,GAEL0L,gBAA4C,IAA5BlO,GAASkO,gBAA4B,iBAAkB9T,SAAWM,EAClFgR,qBAAsB,GAIxB,IAAK,IAAIpP,KAFT6G,GAAcc,kBAAkB3a,KAAM2R,EAAIgI,GAEzBA,IACb3G,KAAQsD,KAAaA,EAAQtD,GAAQ2G,EAAS3G,IAMlD,IAAK,IAAIpB,KAHTmP,GAAczK,GAGCtW,KACQ,MAAjB4R,EAAGhH,OAAO,IAAkC,mBAAb5K,KAAK4R,KACtC5R,KAAK4R,GAAM5R,KAAK4R,GAAI0J,KAAKtb,OAK7BA,KAAK6kB,iBAAkBvO,EAAQiO,eAAwB/E,GAEnDxf,KAAK6kB,kBAEP7kB,KAAKsW,QAAQ8N,oBAAsB,GAIjC9N,EAAQsO,eACVlT,EAAGC,EAAI,cAAe3R,KAAK8kB,cAE3BpT,EAAGC,EAAI,YAAa3R,KAAK8kB,aACzBpT,EAAGC,EAAI,aAAc3R,KAAK8kB,cAGxB9kB,KAAK6kB,kBACPnT,EAAGC,EAAI,WAAY3R,MACnB0R,EAAGC,EAAI,YAAa3R,OAGtB+e,GAAU1d,KAAKrB,KAAK2R,IAEpB2E,EAAQyM,OAASzM,EAAQyM,MAAM3Z,KAAOpJ,KAAK8iB,KAAKxM,EAAQyM,MAAM3Z,IAAIpJ,OAAS,IAE3EkQ,EAASlQ,MAhpBL6iB,EAAkB,GAEf,CACLkC,sBAAuB,WACrBlC,EAAkB,GACb7iB,KAAKsW,QAAQqN,WACH,GAAGqB,MAAM3U,KAAKrQ,KAAK2R,GAAG9M,UAC5BuK,SAAQ,SAAU6V,GACzB,GAA8B,SAA1Bnf,EAAImf,EAAO,YAAyBA,IAAUvO,GAASC,MAA3D,CACAkM,EAAgBxhB,KAAK,CACnB4N,OAAQgW,EACR5C,KAAM3N,EAAQuQ,KAGhB,IAAIC,EAAWlW,EAAe,GAAI6T,EAAgBA,EAAgB9hB,OAAS,GAAGshB,MAG9E,GAAI4C,EAAME,sBAAuB,CAC/B,IAAIC,EAAc3R,EAAOwR,GAAO,GAE5BG,IACFF,EAASlQ,KAAOoQ,EAAYC,EAC5BH,EAASjQ,MAAQmQ,EAAY/lB,GAIjC4lB,EAAMC,SAAWA,OAGrBI,kBAAmB,SAA2BxjB,GAC5C+gB,EAAgBxhB,KAAKS,IAEvByjB,qBAAsB,SAA8BtW,GAClD4T,EAAgB2C,OApItB,SAAuB5kB,EAAK+O,GAC1B,IAAK,IAAI7O,KAAKF,EACZ,GAAKA,EAAIwP,eAAetP,GAExB,IAAK,IAAIuO,KAAOM,EACd,GAAIA,EAAIS,eAAef,IAAQM,EAAIN,KAASzO,EAAIE,GAAGuO,GAAM,OAAOgV,OAAOvjB,GAI3E,OAAQ,EA2HmB2kB,CAAc5C,EAAiB,CACpD5T,OAAQA,IACN,IAENyW,WAAY,SAAoB/M,GAC9B,IAAIG,EAAQ9Y,KAEZ,IAAKA,KAAKsW,QAAQqN,UAGhB,OAFAgC,aAAa/C,QACW,mBAAbjK,GAAyBA,KAItC,IAAIiN,GAAY,EACZC,EAAgB,EACpBhD,EAAgBzT,SAAQ,SAAUtN,GAChC,IAAIgkB,EAAO,EACP7W,EAASnN,EAAMmN,OACfiW,EAAWjW,EAAOiW,SAClBa,EAASrR,EAAQzF,GACjB+W,EAAe/W,EAAO+W,aACtBC,EAAahX,EAAOgX,WACpBC,EAAgBpkB,EAAMugB,KACtB8D,EAAe1S,EAAOxE,GAAQ,GAE9BkX,IAEFJ,EAAO/Q,KAAOmR,EAAad,EAC3BU,EAAO9Q,MAAQkR,EAAa9mB,GAG9B4P,EAAO8W,OAASA,EAEZ9W,EAAOkW,uBAEL7M,EAAY0N,EAAcD,KAAYzN,EAAY4M,EAAUa,KAC/DG,EAAclR,IAAM+Q,EAAO/Q,MAAQkR,EAAcjR,KAAO8Q,EAAO9Q,QAAWiQ,EAASlQ,IAAM+Q,EAAO/Q,MAAQkQ,EAASjQ,KAAO8Q,EAAO9Q,QAE9H6Q,EA2EZ,SAA2BI,EAAehB,EAAUa,EAAQzP,GAC1D,OAAOnU,KAAKikB,KAAKjkB,KAAKkkB,IAAInB,EAASlQ,IAAMkR,EAAclR,IAAK,GAAK7S,KAAKkkB,IAAInB,EAASjQ,KAAOiR,EAAcjR,KAAM,IAAM9S,KAAKikB,KAAKjkB,KAAKkkB,IAAInB,EAASlQ,IAAM+Q,EAAO/Q,IAAK,GAAK7S,KAAKkkB,IAAInB,EAASjQ,KAAO8Q,EAAO9Q,KAAM,IAAMqB,EAAQqN,UA5E1M2C,CAAkBJ,EAAeF,EAAcC,EAAYnN,EAAMxC,UAKvEgC,EAAYyN,EAAQb,KACvBjW,EAAO+W,aAAed,EACtBjW,EAAOgX,WAAaF,EAEfD,IACHA,EAAOhN,EAAMxC,QAAQqN,WAGvB7K,EAAMyN,QAAQtX,EAAQiX,EAAeH,EAAQD,IAG3CA,IACFF,GAAY,EACZC,EAAgB1jB,KAAKE,IAAIwjB,EAAeC,GACxCH,aAAa1W,EAAOuX,qBACpBvX,EAAOuX,oBAAsBzN,YAAW,WACtC9J,EAAO4W,cAAgB,EACvB5W,EAAO+W,aAAe,KACtB/W,EAAOiW,SAAW,KAClBjW,EAAOgX,WAAa,KACpBhX,EAAOkW,sBAAwB,OAC9BW,GACH7W,EAAOkW,sBAAwBW,MAGnCH,aAAa/C,GAERgD,EAGHhD,EAAsB7J,YAAW,WACP,mBAAbJ,GAAyBA,MACnCkN,GAJqB,mBAAblN,GAAyBA,IAOtCkK,EAAkB,IAEpB0D,QAAS,SAAiBtX,EAAQwX,EAAaV,EAAQW,GACrD,GAAIA,EAAU,CACZ5gB,EAAImJ,EAAQ,aAAc,IAC1BnJ,EAAImJ,EAAQ,YAAa,IACzB,IAAIuG,EAAW/B,EAAOzT,KAAK2R,IACvB8D,EAASD,GAAYA,EAASE,EAC9BC,EAASH,GAAYA,EAASI,EAC9B+Q,GAAcF,EAAYxR,KAAO8Q,EAAO9Q,OAASQ,GAAU,GAC3DmR,GAAcH,EAAYzR,IAAM+Q,EAAO/Q,MAAQW,GAAU,GAC7D1G,EAAO4X,aAAeF,EACtB1X,EAAO6X,aAAeF,EACtB9gB,EAAImJ,EAAQ,YAAa,eAAiB0X,EAAa,MAAQC,EAAa,SAC5E5mB,KAAK+mB,gBAiBb,SAAiB9X,GACf,OAAOA,EAAO+X,YAlBeC,CAAQhY,GAE/BnJ,EAAImJ,EAAQ,aAAc,aAAeyX,EAAW,MAAQ1mB,KAAKsW,QAAQsN,OAAS,IAAM5jB,KAAKsW,QAAQsN,OAAS,KAC9G9d,EAAImJ,EAAQ,YAAa,sBACE,iBAApBA,EAAOiY,UAAyBvB,aAAa1W,EAAOiY,UAC3DjY,EAAOiY,SAAWnO,YAAW,WAC3BjT,EAAImJ,EAAQ,aAAc,IAC1BnJ,EAAImJ,EAAQ,YAAa,IACzBA,EAAOiY,UAAW,EAClBjY,EAAO4X,YAAa,EACpB5X,EAAO6X,YAAa,IACnBJ,QAksDX,SAASS,GAAQhK,EAAQD,EAAM3B,EAAQ6L,EAAUnK,EAAUoK,EAAYhM,EAAeiM,GACpF,IAAI/M,EAGAgN,EAFAjN,EAAW6C,EAAO5D,GAClBiO,EAAWlN,EAAShE,QAAQmR,OA2BhC,OAxBI3W,OAAOwM,aAAgBrM,GAAeC,GAMxCqJ,EAAMrX,SAASqa,YAAY,UACvBC,UAAU,QAAQ,GAAM,GAN5BjD,EAAM,IAAI+C,YAAY,OAAQ,CAC5BG,SAAS,EACTC,YAAY,IAOhBnD,EAAIoD,GAAKT,EACT3C,EAAIqD,KAAOT,EACX5C,EAAI3D,QAAU2E,EACdhB,EAAImN,YAAcN,EAClB7M,EAAIoN,QAAU1K,GAAYC,EAC1B3C,EAAIqN,YAAcP,GAAc3S,EAAQwI,GACxC3C,EAAI+M,gBAAkBA,EACtB/M,EAAIc,cAAgBA,EACpB8B,EAAOc,cAAc1D,GAEjBiN,IACFD,EAASC,EAASnX,KAAKiK,EAAUC,EAAKc,IAGjCkM,EAGT,SAASM,GAAkBlW,GACzBA,EAAGkF,WAAY,EAGjB,SAASiR,KACP3I,IAAU,EAmFZ,SAAS4I,GAAYpW,GAKnB,IAJA,IAAIqW,EAAMrW,EAAGwC,QAAUxC,EAAGuB,UAAYvB,EAAGsW,IAAMtW,EAAGuW,KAAOvW,EAAGvM,YACxDtE,EAAIknB,EAAIjnB,OACRonB,EAAM,EAEHrnB,KACLqnB,GAAOH,EAAII,WAAWtnB,GAGxB,OAAOqnB,EAAIre,SAAS,IActB,SAASue,GAAUzW,GACjB,OAAOmH,WAAWnH,EAAI,GAGxB,SAAS0W,GAAgBrpB,GACvB,OAAO0mB,aAAa1mB,GA50CtByX,GAAS5G,UAET,CACEhQ,YAAa4W,GACbiM,iBAAkB,SAA0B1T,GACrCjP,KAAK2R,GAAG4W,SAAStZ,IAAWA,IAAWjP,KAAK2R,KAC/C8M,GAAa,OAGjB+J,cAAe,SAAuBjO,EAAKtL,GACzC,MAAyC,mBAA3BjP,KAAKsW,QAAQ+M,UAA2BrjB,KAAKsW,QAAQ+M,UAAUhT,KAAKrQ,KAAMua,EAAKtL,EAAQsM,IAAUvb,KAAKsW,QAAQ+M,WAE9HyB,YAAa,SAEbvK,GACE,GAAKA,EAAImD,WAAT,CAEA,IAAI5E,EAAQ9Y,KACR2R,EAAK3R,KAAK2R,GACV2E,EAAUtW,KAAKsW,QACfoN,EAAkBpN,EAAQoN,gBAC1B+E,EAAOlO,EAAIkO,KACXC,EAAQnO,EAAIuH,SAAWvH,EAAIuH,QAAQ,IAAMvH,EAAIoO,aAAmC,UAApBpO,EAAIoO,aAA2BpO,EAC3FtL,GAAUyZ,GAASnO,GAAKtL,OACxB2Z,EAAiBrO,EAAItL,OAAO4Z,aAAetO,EAAIuO,MAAQvO,EAAIuO,KAAK,IAAMvO,EAAIwO,cAAgBxO,EAAIwO,eAAe,KAAO9Z,EACpH/C,EAASoK,EAAQpK,OAKrB,GA8xCJ,SAAgC8c,GAC9B5J,GAAkBre,OAAS,EAI3B,IAHA,IAAIkoB,EAASD,EAAK3U,qBAAqB,SACnC6U,EAAMD,EAAOloB,OAEVmoB,KAAO,CACZ,IAAIvX,EAAKsX,EAAOC,GAChBvX,EAAGwX,SAAW/J,GAAkB/d,KAAKsQ,IAxyCrCyX,CAAuBzX,IAGnB4J,MAIA,wBAAwBnP,KAAKqc,IAAwB,IAAflO,EAAI8O,QAAgB/S,EAAQnO,YAKlEygB,EAAeU,oBAKdtpB,KAAK6kB,kBAAmBzT,IAAUnC,GAA2C,WAAjCA,EAAOkF,QAAQgD,mBAIhElI,EAASyD,EAAQzD,EAAQqH,EAAQO,UAAWlF,GAAI,KAElC1C,EAAOiY,UAIjBtL,KAAe3M,GAAnB,CASA,GAHAmN,GAAWlX,EAAM+J,GACjBoN,GAAoBnX,EAAM+J,EAAQqH,EAAQO,WAEpB,mBAAX3K,GACT,GAAIA,EAAOmE,KAAKrQ,KAAMua,EAAKtL,EAAQjP,MAcjC,OAbA+c,GAAe,CACbzC,SAAUxB,EACV4C,OAAQkN,EACR5V,KAAM,SACNiK,SAAUhO,EACViO,KAAMvL,EACNwL,OAAQxL,IAGVyI,GAAY,SAAUtB,EAAO,CAC3ByB,IAAKA,SAEPmJ,GAAmBnJ,EAAImD,YAAcnD,EAAImH,uBAGtC,GAAIxV,IACTA,EAASA,EAAOJ,MAAM,KAAKoW,MAAK,SAAUqH,GAGxC,GAFAA,EAAW7W,EAAQkW,EAAgBW,EAASC,OAAQ7X,GAAI,GAetD,OAZAoL,GAAe,CACbzC,SAAUxB,EACV4C,OAAQ6N,EACRvW,KAAM,SACNiK,SAAUhO,EACVkO,OAAQxL,EACRuL,KAAMvL,IAGRyI,GAAY,SAAUtB,EAAO,CAC3ByB,IAAKA,KAEA,MAMT,YADAmJ,GAAmBnJ,EAAImD,YAAcnD,EAAImH,kBAKzCpL,EAAQ0M,SAAWtQ,EAAQkW,EAAgBtS,EAAQ0M,OAAQrR,GAAI,IAKnE3R,KAAKypB,kBAAkBlP,EAAKmO,EAAOzZ,MAErCwa,kBAAmB,SAEnBlP,EAEAmO,EAEAzZ,GACE,IAIIya,EAJA5Q,EAAQ9Y,KACR2R,EAAKmH,EAAMnH,GACX2E,EAAUwC,EAAMxC,QAChBqT,EAAgBhY,EAAGgY,cAGvB,GAAI1a,IAAWsM,IAAUtM,EAAOwD,aAAed,EAAI,CACjD,IAAIyV,EAAW1S,EAAQzF,GAwEvB,GAvEAyM,GAAS/J,EAET6J,IADAD,GAAStM,GACSwD,WAClBkJ,GAASJ,GAAOqO,YAChBhO,GAAa3M,EACbiP,GAAc5H,EAAQ6K,MACtBzK,GAASE,QAAU2E,GACnB4C,GAAS,CACPlP,OAAQsM,GACRyG,SAAU0G,GAASnO,GAAKyH,QACxBC,SAAUyG,GAASnO,GAAK0H,SAE1B1D,GAAkBJ,GAAO6D,QAAUoF,EAASnS,KAC5CuJ,GAAiBL,GAAO8D,QAAUmF,EAASpS,IAC3ChV,KAAK6pB,QAAUnB,GAASnO,GAAKyH,QAC7BhiB,KAAK8pB,QAAUpB,GAASnO,GAAK0H,QAC7B1G,GAAOlI,MAAM,eAAiB,MAE9BqW,EAAc,WACZtP,GAAY,aAActB,EAAO,CAC/ByB,IAAKA,IAGH7D,GAAS8D,cACX1B,EAAMiR,WAORjR,EAAMkR,6BAED7Y,GAAW2H,EAAM+L,kBACpBtJ,GAAO1E,WAAY,GAIrBiC,EAAMmR,kBAAkB1P,EAAKmO,GAG7B3L,GAAe,CACbzC,SAAUxB,EACV9F,KAAM,SACNqI,cAAed,IAIjBxH,EAAYwI,GAAQjF,EAAQiN,aAAa,KAI3CjN,EAAQmN,OAAO3X,MAAM,KAAKsD,SAAQ,SAAUma,GAC1CrV,EAAKqH,GAAQgO,EAASC,OAAQ3B,OAEhCnW,EAAGiY,EAAe,WAAY9H,IAC9BnQ,EAAGiY,EAAe,YAAa9H,IAC/BnQ,EAAGiY,EAAe,YAAa9H,IAC/BnQ,EAAGiY,EAAe,UAAW7Q,EAAMiR,SACnCrY,EAAGiY,EAAe,WAAY7Q,EAAMiR,SACpCrY,EAAGiY,EAAe,cAAe7Q,EAAMiR,SAEnC5Y,GAAWnR,KAAK6kB,kBAClB7kB,KAAKsW,QAAQ8N,oBAAsB,EACnC7I,GAAO1E,WAAY,GAGrBuD,GAAY,aAAcpa,KAAM,CAC9Bua,IAAKA,KAGHjE,EAAQ4N,OAAW5N,EAAQ6N,mBAAoBuE,GAAY1oB,KAAK6kB,kBAAqB3T,GAAQD,GAkB/FyY,QAlB6G,CAC7G,GAAIhT,GAAS8D,cAGX,YAFAxa,KAAK+pB,UAQPrY,EAAGiY,EAAe,UAAW7Q,EAAMoR,qBACnCxY,EAAGiY,EAAe,WAAY7Q,EAAMoR,qBACpCxY,EAAGiY,EAAe,cAAe7Q,EAAMoR,qBACvCxY,EAAGiY,EAAe,YAAa7Q,EAAMqR,8BACrCzY,EAAGiY,EAAe,YAAa7Q,EAAMqR,8BACrC7T,EAAQsO,gBAAkBlT,EAAGiY,EAAe,cAAe7Q,EAAMqR,8BACjErR,EAAMsR,gBAAkBrR,WAAW2Q,EAAapT,EAAQ4N,UAM9DiG,6BAA8B,SAE9B9qB,GACE,IAAIqpB,EAAQrpB,EAAEyiB,QAAUziB,EAAEyiB,QAAQ,GAAKziB,EAEnC8C,KAAKE,IAAIF,KAAKkoB,IAAI3B,EAAM1G,QAAUhiB,KAAK6pB,QAAS1nB,KAAKkoB,IAAI3B,EAAMzG,QAAUjiB,KAAK8pB,UAAY3nB,KAAKmoB,MAAMtqB,KAAKsW,QAAQ8N,qBAAuBpkB,KAAK6kB,iBAAmB/T,OAAOwT,kBAAoB,KAC9LtkB,KAAKkqB,uBAGTA,oBAAqB,WACnB3O,IAAUsM,GAAkBtM,IAC5BoK,aAAa3lB,KAAKoqB,iBAElBpqB,KAAKgqB,6BAEPA,0BAA2B,WACzB,IAAIL,EAAgB3pB,KAAK2R,GAAGgY,cAC5B7X,EAAI6X,EAAe,UAAW3pB,KAAKkqB,qBACnCpY,EAAI6X,EAAe,WAAY3pB,KAAKkqB,qBACpCpY,EAAI6X,EAAe,cAAe3pB,KAAKkqB,qBACvCpY,EAAI6X,EAAe,YAAa3pB,KAAKmqB,8BACrCrY,EAAI6X,EAAe,YAAa3pB,KAAKmqB,8BACrCrY,EAAI6X,EAAe,cAAe3pB,KAAKmqB,+BAEzCF,kBAAmB,SAEnB1P,EAEAmO,GACEA,EAAQA,GAA4B,SAAnBnO,EAAIoO,aAA0BpO,GAE1Cva,KAAK6kB,iBAAmB6D,EACvB1oB,KAAKsW,QAAQsO,eACflT,EAAGxO,SAAU,cAAelD,KAAKuqB,cAEjC7Y,EAAGxO,SADMwlB,EACI,YAEA,YAFa1oB,KAAKuqB,eAKjC7Y,EAAG6J,GAAQ,UAAWvb,MACtB0R,EAAGgK,GAAQ,YAAa1b,KAAKwqB,eAG/B,IACMtnB,SAASunB,UAEXpC,IAAU,WACRnlB,SAASunB,UAAUC,WAGrB5Z,OAAO6Z,eAAeC,kBAExB,MAAOC,MAEXC,aAAc,SAAsBC,EAAUxQ,GAI5C,GAFAsE,IAAsB,EAElBnD,IAAUH,GAAQ,CACpBnB,GAAY,cAAepa,KAAM,CAC/Bua,IAAKA,IAGHva,KAAK6kB,iBACPnT,EAAGxO,SAAU,WAAYwf,IAG3B,IAAIpM,EAAUtW,KAAKsW,SAElByU,GAAYhY,EAAYwI,GAAQjF,EAAQkN,WAAW,GACpDzQ,EAAYwI,GAAQjF,EAAQgN,YAAY,GACxC5M,GAASyF,OAASnc,KAClB+qB,GAAY/qB,KAAKgrB,eAEjBjO,GAAe,CACbzC,SAAUta,KACVgT,KAAM,QACNqI,cAAed,SAGjBva,KAAKirB,YAGTC,iBAAkB,WAChB,GAAI9M,GAAU,CACZpe,KAAK6pB,OAASzL,GAAS4D,QACvBhiB,KAAK8pB,OAAS1L,GAAS6D,QAEvBxF,KAKA,IAHA,IAAIxN,EAAS/L,SAASioB,iBAAiB/M,GAAS4D,QAAS5D,GAAS6D,SAC9DjM,EAAS/G,EAENA,GAAUA,EAAO4Z,aACtB5Z,EAASA,EAAO4Z,WAAWsC,iBAAiB/M,GAAS4D,QAAS5D,GAAS6D,YACxDjM,GACfA,EAAS/G,EAKX,GAFAsM,GAAO9I,WAAW8G,GAASoJ,iBAAiB1T,GAExC+G,EACF,EAAG,CACD,GAAIA,EAAOuD,IAEEvD,EAAOuD,GAASkJ,YAAY,CACrCT,QAAS5D,GAAS4D,QAClBC,QAAS7D,GAAS6D,QAClBhT,OAAQA,EACRyM,OAAQ1F,MAGOhW,KAAKsW,QAAQ0N,eAC5B,MAIJ/U,EAAS+G,QAGJA,EAASA,EAAOvD,YAGzBkK,OAGJ4N,aAAc,SAEdhQ,GACE,GAAI4D,GAAQ,CACV,IAAI7H,EAAUtW,KAAKsW,QACfoO,EAAoBpO,EAAQoO,kBAC5BC,EAAiBrO,EAAQqO,eACzB+D,EAAQnO,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,EACvC6Q,EAAc3P,IAAWhI,EAAOgI,IAAS,GACzChG,EAASgG,IAAW2P,GAAeA,EAAY1V,EAC/CC,EAAS8F,IAAW2P,GAAeA,EAAYxV,EAC/CyV,EAAuB/L,IAA2BV,IAAuBvH,EAAwBuH,IACjG0M,GAAM5C,EAAM1G,QAAU7D,GAAO6D,QAAU2C,EAAe1L,IAAMxD,GAAU,IAAM4V,EAAuBA,EAAqB,GAAKnM,GAAiC,GAAK,IAAMzJ,GAAU,GACnL8V,GAAM7C,EAAMzG,QAAU9D,GAAO8D,QAAU0C,EAAezL,IAAMvD,GAAU,IAAM0V,EAAuBA,EAAqB,GAAKnM,GAAiC,GAAK,IAAMvJ,GAAU,GAEvL,IAAKe,GAASyF,SAAW0C,GAAqB,CAC5C,GAAI6F,GAAqBviB,KAAKE,IAAIF,KAAKkoB,IAAI3B,EAAM1G,QAAUhiB,KAAK6pB,QAAS1nB,KAAKkoB,IAAI3B,EAAMzG,QAAUjiB,KAAK8pB,SAAWpF,EAChH,OAGF1kB,KAAKwqB,aAAajQ,GAAK,GAGzB,GAAIkB,GAAS,CACP2P,GACFA,EAAY/rB,GAAKisB,GAAMjN,IAAU,GACjC+M,EAAY/F,GAAKkG,GAAMjN,IAAU,IAEjC8M,EAAc,CACZ1V,EAAG,EACH8V,EAAG,EACHC,EAAG,EACH7V,EAAG,EACHvW,EAAGisB,EACHjG,EAAGkG,GAIP,IAAIG,EAAY,UAAUvR,OAAOiR,EAAY1V,EAAG,KAAKyE,OAAOiR,EAAYI,EAAG,KAAKrR,OAAOiR,EAAYK,EAAG,KAAKtR,OAAOiR,EAAYxV,EAAG,KAAKuE,OAAOiR,EAAY/rB,EAAG,KAAK8a,OAAOiR,EAAY/F,EAAG,KACvLvf,EAAI2V,GAAS,kBAAmBiQ,GAChC5lB,EAAI2V,GAAS,eAAgBiQ,GAC7B5lB,EAAI2V,GAAS,cAAeiQ,GAC5B5lB,EAAI2V,GAAS,YAAaiQ,GAC1BrN,GAASiN,EACThN,GAASiN,EACTnN,GAAWsK,EAGbnO,EAAImD,YAAcnD,EAAImH,mBAG1BsJ,aAAc,WAGZ,IAAKvP,GAAS,CACZ,IAAIpO,EAAYrN,KAAKsW,QAAQmO,eAAiBvhB,SAASmV,KAAOqD,GAC1D2G,EAAO3N,EAAQ6G,IAAQ,EAAM+D,IAAyB,EAAMjS,GAC5DiJ,EAAUtW,KAAKsW,QAEnB,GAAIgJ,GAAyB,CAI3B,IAFAV,GAAsBvR,EAE0B,WAAzCvH,EAAI8Y,GAAqB,aAAsE,SAA1C9Y,EAAI8Y,GAAqB,cAA2BA,KAAwB1b,UACtI0b,GAAsBA,GAAoBnM,WAGxCmM,KAAwB1b,SAASmV,MAAQuG,KAAwB1b,SAASuR,iBACxEmK,KAAwB1b,WAAU0b,GAAsBrK,KAC5D8N,EAAKrN,KAAO4J,GAAoBlH,UAChC2K,EAAKpN,MAAQ2J,GAAoBnH,YAEjCmH,GAAsBrK,IAGxB2K,GAAmC7H,EAAwBuH,IAI7D7L,EADA0I,GAAUF,GAAOjC,WAAU,GACNhD,EAAQgN,YAAY,GACzCvQ,EAAY0I,GAASnF,EAAQkO,eAAe,GAC5CzR,EAAY0I,GAASnF,EAAQkN,WAAW,GACxC1d,EAAI2V,GAAS,aAAc,IAC3B3V,EAAI2V,GAAS,YAAa,IAC1B3V,EAAI2V,GAAS,aAAc,cAC3B3V,EAAI2V,GAAS,SAAU,GACvB3V,EAAI2V,GAAS,MAAO4G,EAAKrN,KACzBlP,EAAI2V,GAAS,OAAQ4G,EAAKpN,MAC1BnP,EAAI2V,GAAS,QAAS4G,EAAK7U,OAC3B1H,EAAI2V,GAAS,SAAU4G,EAAK5U,QAC5B3H,EAAI2V,GAAS,UAAW,OACxB3V,EAAI2V,GAAS,WAAY6D,GAA0B,WAAa,SAChExZ,EAAI2V,GAAS,SAAU,UACvB3V,EAAI2V,GAAS,gBAAiB,QAC9B/E,GAASC,MAAQ8E,GACjBpO,EAAUhK,YAAYoY,IAEtB3V,EAAI2V,GAAS,mBAAoB8C,GAAkBhJ,SAASkG,GAAQpI,MAAM7F,OAAS,IAAM,KAAOgR,GAAiBjJ,SAASkG,GAAQpI,MAAM5F,QAAU,IAAM,OAG5J+c,aAAc,SAEdjQ,EAEAwQ,GACE,IAAIjS,EAAQ9Y,KAER8jB,EAAevJ,EAAIuJ,aACnBxN,EAAUwC,EAAMxC,QACpB8D,GAAY,YAAapa,KAAM,CAC7Bua,IAAKA,IAGH7D,GAAS8D,cACXxa,KAAK+pB,WAKP3P,GAAY,aAAcpa,MAErB0W,GAAS8D,iBACZqB,GAAUzE,EAAMmE,KACR1E,WAAY,EACpBgF,GAAQxI,MAAM,eAAiB,GAE/BrT,KAAK2rB,aAEL5Y,EAAY8I,GAAS7b,KAAKsW,QAAQiN,aAAa,GAC/C7M,GAASU,MAAQyE,IAInB/C,EAAM8S,QAAUvD,IAAU,WACxBjO,GAAY,QAAStB,GACjBpC,GAAS8D,gBAER1B,EAAMxC,QAAQ8M,mBACjB1H,GAAOmQ,aAAahQ,GAASN,IAG/BzC,EAAM6S,aAEN5O,GAAe,CACbzC,SAAUxB,EACV9F,KAAM,eAGT+X,GAAYhY,EAAYwI,GAAQjF,EAAQkN,WAAW,GAEhDuH,GACFjM,IAAkB,EAClBhG,EAAMgT,QAAUC,YAAYjT,EAAMoS,iBAAkB,MAGpDpZ,EAAI5O,SAAU,UAAW4V,EAAMiR,SAC/BjY,EAAI5O,SAAU,WAAY4V,EAAMiR,SAChCjY,EAAI5O,SAAU,cAAe4V,EAAMiR,SAE/BjG,IACFA,EAAakI,cAAgB,OAC7B1V,EAAQuN,SAAWvN,EAAQuN,QAAQxT,KAAKyI,EAAOgL,EAAcvI,KAG/D7J,EAAGxO,SAAU,OAAQ4V,GAErBhT,EAAIyV,GAAQ,YAAa,kBAG3BsD,IAAsB,EACtB/F,EAAMmT,aAAe5D,GAAUvP,EAAMgS,aAAaxP,KAAKxC,EAAOiS,EAAUxQ,IACxE7I,EAAGxO,SAAU,cAAe4V,GAC5BkD,IAAQ,EAEJ5K,GACFtL,EAAI5C,SAASmV,KAAM,cAAe,UAItCoK,YAAa,SAEblI,GACE,IAEI6M,EACAC,EACA6E,EAOAC,EAXAxa,EAAK3R,KAAK2R,GACV1C,EAASsL,EAAItL,OAIbqH,EAAUtW,KAAKsW,QACf6K,EAAQ7K,EAAQ6K,MAChBjF,EAAiBxF,GAASyF,OAC1BiQ,EAAUlO,KAAgBiD,EAC1BkL,EAAU/V,EAAQwM,KAClBwJ,EAAerQ,IAAeC,EAE9BpD,EAAQ9Y,KACRusB,GAAiB,EAErB,IAAIpN,GAAJ,CAgHA,QAN2B,IAAvB5E,EAAImH,gBACNnH,EAAImD,YAAcnD,EAAImH,iBAGxBzS,EAASyD,EAAQzD,EAAQqH,EAAQO,UAAWlF,GAAI,GAChD6a,EAAc,YACV9V,GAAS8D,cAAe,OAAO+R,EAEnC,GAAIhR,GAAOgN,SAAShO,EAAItL,SAAWA,EAAOiY,UAAYjY,EAAO4X,YAAc5X,EAAO6X,YAAchO,EAAM2T,wBAA0Bxd,EAC9H,OAAOyd,GAAU,GAKnB,GAFA5N,IAAkB,EAEd5C,IAAmB5F,EAAQnO,WAAaikB,EAAUC,IAAYH,EAAS1Q,KAAaE,IACtFO,KAAgBjc,OAASA,KAAK+d,YAAcG,GAAYoD,UAAUthB,KAAMkc,EAAgBX,GAAQhB,KAAS4G,EAAMI,SAASvhB,KAAMkc,EAAgBX,GAAQhB,IAAO,CAI7J,GAHA4R,EAA+C,aAApCnsB,KAAKwoB,cAAcjO,EAAKtL,GACnCmY,EAAW1S,EAAQ6G,IACnBiR,EAAc,iBACV9V,GAAS8D,cAAe,OAAO+R,EAEnC,GAAIL,EAiBF,OAhBA1Q,GAAWE,GAEXlK,IAEAxR,KAAK2rB,aAELa,EAAc,UAET9V,GAAS8D,gBACRmB,GACFD,GAAOmQ,aAAatQ,GAAQI,IAE5BD,GAAOrY,YAAYkY,KAIhBmR,GAAU,GAGnB,IAAIC,EAAc7V,EAAUnF,EAAI2E,EAAQO,WAExC,IAAK8V,GA+iBX,SAAsBpS,EAAK4R,EAAU7R,GACnC,IAAI+H,EAAO3N,EAAQoC,EAAUwD,EAAS3I,GAAI2I,EAAShE,QAAQO,YAE3D,OAAOsV,EAAW5R,EAAIyH,QAAUK,EAAKlN,MADxB,IAC0CoF,EAAIyH,SAAWK,EAAKlN,OAASoF,EAAI0H,QAAUI,EAAKnN,QAAUqF,EAAIyH,SAAWK,EAAKpN,KAAOsF,EAAIyH,QAAUK,EAAKlN,OAASoF,EAAI0H,QAAUI,EAAKrN,KAAOuF,EAAIyH,SAAWK,EAAKlN,OAASoF,EAAI0H,QAAUI,EAAKnN,OADrO,GAjjBW0X,CAAarS,EAAK4R,EAAUnsB,QAAU2sB,EAAYzF,SAAU,CAG9E,GAAIyF,IAAgBpR,GAClB,OAAOmR,GAAU,GAYnB,GARIC,GAAehb,IAAO4I,EAAItL,SAC5BA,EAAS0d,GAGP1d,IACFoY,EAAa3S,EAAQzF,KAG0D,IAA7EkY,GAAQzL,GAAQ/J,EAAI4J,GAAQ6L,EAAUnY,EAAQoY,EAAY9M,IAAOtL,GAMnE,OALAuC,IACAG,EAAGtO,YAAYkY,IACfC,GAAW7J,EAEXkb,IACOH,GAAU,QAEd,GAAIC,GAihBjB,SAAuBpS,EAAK4R,EAAU7R,GACpC,IAAI+H,EAAO3N,EAAQ0B,EAASkE,EAAS3I,GAAI,EAAG2I,EAAShE,SAAS,IAE9D,OAAO6V,EAAW5R,EAAIyH,QAAUK,EAAKpN,KADxB,IACyCsF,EAAI0H,QAAUI,EAAKrN,KAAOuF,EAAIyH,QAAUK,EAAKlN,MAAQoF,EAAI0H,QAAUI,EAAKrN,IADjH,IACiIuF,EAAI0H,QAAUI,EAAKnN,QAAUqF,EAAIyH,QAAUK,EAAKpN,KAphBhK6X,CAAcvS,EAAK4R,EAAUnsB,MAAO,CAE5D,IAAI+sB,EAAa3W,EAASzE,EAAI,EAAG2E,GAAS,GAE1C,GAAIyW,IAAexR,GACjB,OAAOmR,GAAU,GAMnB,GAFArF,EAAa3S,EADbzF,EAAS8d,IAGqE,IAA1E5F,GAAQzL,GAAQ/J,EAAI4J,GAAQ6L,EAAUnY,EAAQoY,EAAY9M,GAAK,GAMjE,OALA/I,IACAG,EAAGka,aAAatQ,GAAQwR,GACxBvR,GAAW7J,EAEXkb,IACOH,GAAU,QAEd,GAAIzd,EAAOwD,aAAed,EAAI,CACnC0V,EAAa3S,EAAQzF,GACrB,IAAIoU,EACA2J,EAcAC,EAbAC,EAAiB3R,GAAO9I,aAAed,EACvCwb,GA18Ba,SAA4B/F,EAAUC,EAAY8E,GACzE,IAAIiB,EAAcjB,EAAW/E,EAASnS,KAAOmS,EAASpS,IAClDqY,EAAclB,EAAW/E,EAASjS,MAAQiS,EAASlS,OACnDoY,EAAkBnB,EAAW/E,EAAS5Z,MAAQ4Z,EAAS3Z,OACvD8f,EAAcpB,EAAW9E,EAAWpS,KAAOoS,EAAWrS,IACtDwY,EAAcrB,EAAW9E,EAAWlS,MAAQkS,EAAWnS,OACvDuY,EAAkBtB,EAAW9E,EAAW7Z,MAAQ6Z,EAAW5Z,OAC/D,OAAO2f,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,EAm8B9GC,CAAmBnS,GAAO2L,UAAY3L,GAAOwK,QAAUqB,EAAUnY,EAAOiY,UAAYjY,EAAO8W,QAAUsB,EAAY8E,GACpIwB,EAAQxB,EAAW,MAAQ,OAC3ByB,EAAkB/X,EAAe5G,EAAQ,MAAO,QAAU4G,EAAe0F,GAAQ,MAAO,OACxFsS,EAAeD,EAAkBA,EAAgBlW,eAAY,EAWjE,GATI+G,KAAexP,IACjB+d,EAAwB3F,EAAWsG,GACnC3O,IAAwB,EACxBC,IAA0BkO,GAAmB7W,EAAQ4M,YAAcgK,GAGrE7J,EA0fR,SAA2B9I,EAAKtL,EAAQoY,EAAY8E,EAAUlJ,EAAeE,EAAuBD,EAAY4K,GAC9G,IAAIC,EAAc5B,EAAW5R,EAAI0H,QAAU1H,EAAIyH,QAC3CgM,EAAe7B,EAAW9E,EAAW5Z,OAAS4Z,EAAW7Z,MACzDygB,EAAW9B,EAAW9E,EAAWrS,IAAMqS,EAAWpS,KAClDiZ,EAAW/B,EAAW9E,EAAWnS,OAASmS,EAAWlS,MACrDgZ,GAAS,EAEb,IAAKjL,EAEH,GAAI4K,GAAgBnP,GAAqBqP,EAAe/K,GAQtD,IALKjE,KAA4C,IAAlBN,GAAsBqP,EAAcE,EAAWD,EAAe7K,EAAwB,EAAI4K,EAAcG,EAAWF,EAAe7K,EAAwB,KAEvLnE,IAAwB,GAGrBA,GAOHmP,GAAS,OALT,GAAsB,IAAlBzP,GAAsBqP,EAAcE,EAAWtP,GACjDoP,EAAcG,EAAWvP,GACzB,OAAQD,QAOZ,GAAIqP,EAAcE,EAAWD,GAAgB,EAAI/K,GAAiB,GAAK8K,EAAcG,EAAWF,GAAgB,EAAI/K,GAAiB,EACnI,OAwBR,SAA6BhU,GAC3B,OAAI/J,EAAMqW,IAAUrW,EAAM+J,GACjB,GAEC,EA5BGmf,CAAoBnf,GAOjC,OAFAkf,EAASA,GAAUjL,KAIb6K,EAAcE,EAAWD,EAAe7K,EAAwB,GAAK4K,EAAcG,EAAWF,EAAe7K,EAAwB,GAChI4K,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAIrD,EAriBWK,CAAkB9T,EAAKtL,EAAQoY,EAAY8E,EAAUgB,EAAkB,EAAI7W,EAAQ2M,cAAgD,MAAjC3M,EAAQ6M,sBAAgC7M,EAAQ2M,cAAgB3M,EAAQ6M,sBAAuBlE,GAAwBR,KAAexP,GAGlO,IAAdoU,EAAiB,CAEnB,IAAIiL,EAAYppB,EAAMqW,IAEtB,GACE+S,GAAajL,EACb4J,EAAUzR,GAAS3W,SAASypB,SACrBrB,IAAwC,SAA5BnnB,EAAImnB,EAAS,YAAyBA,IAAYxR,KAIzE,GAAkB,IAAd4H,GAAmB4J,IAAYhe,EACjC,OAAOyd,GAAU,GAGnBjO,GAAaxP,EACbyP,GAAgB2E,EAChB,IAAIuG,EAAc3a,EAAOsf,mBACrBC,GAAQ,EAGRC,EAAatH,GAAQzL,GAAQ/J,EAAI4J,GAAQ6L,EAAUnY,EAAQoY,EAAY9M,EAF3EiU,EAAsB,IAAdnL,GAIR,IAAmB,IAAfoL,EA4BF,OA3BmB,IAAfA,IAAoC,IAAhBA,IACtBD,EAAuB,IAAfC,GAGVtP,IAAU,EACVpG,WAAW+O,GAAW,IACtBtW,IAEIgd,IAAU5E,EACZjY,EAAGtO,YAAYkY,IAEftM,EAAOwD,WAAWoZ,aAAatQ,GAAQiT,EAAQ5E,EAAc3a,GAI3D2e,GACF5U,EAAS4U,EAAiB,EAAGC,EAAeD,EAAgBlW,WAG9D8D,GAAWD,GAAO9I,gBAGY1F,IAA1BigB,GAAwC/N,KAC1CN,GAAqBxc,KAAKkoB,IAAI2C,EAAwBtY,EAAQzF,GAAQ0e,KAGxEd,IACOH,GAAU,GAIrB,GAAI/a,EAAG4W,SAAShN,IACd,OAAOmR,GAAU,GAIrB,OAAO,EA7QP,SAASF,EAAcxZ,EAAM0b,GAC3BtU,GAAYpH,EAAM8F,EAAO9J,EAAe,CACtCuL,IAAKA,EACL6R,QAASA,EACTuC,KAAMxC,EAAW,WAAa,aAC9BD,OAAQA,EACR9E,SAAUA,EACVC,WAAYA,EACZgF,QAASA,EACTC,aAAcA,EACdrd,OAAQA,EACRyd,UAAWA,EACXjF,OAAQ,SAAgBxY,EAAQuf,GAC9B,OAAOrH,GAAQzL,GAAQ/J,EAAI4J,GAAQ6L,EAAUnY,EAAQyF,EAAQzF,GAASsL,EAAKiU,IAE7E3B,QAASA,GACR6B,IAIL,SAASld,IACPgb,EAAc,4BAEd1T,EAAMiM,wBAEFjM,IAAUwT,GACZA,EAAavH,wBAKjB,SAAS2H,EAAUkC,GAuDjB,OAtDApC,EAAc,oBAAqB,CACjCoC,UAAWA,IAGTA,IAEExC,EACFlQ,EAAeyP,aAEfzP,EAAe2S,WAAW/V,GAGxBA,IAAUwT,IAEZvZ,EAAYwI,GAAQU,GAAcA,GAAY3F,QAAQgN,WAAapH,EAAe5F,QAAQgN,YAAY,GACtGvQ,EAAYwI,GAAQjF,EAAQgN,YAAY,IAGtCrH,KAAgBnD,GAASA,IAAUpC,GAASyF,OAC9CF,GAAcnD,EACLA,IAAUpC,GAASyF,QAAUF,KACtCA,GAAc,MAIZqQ,IAAiBxT,IACnBA,EAAM2T,sBAAwBxd,GAGhC6J,EAAM4M,YAAW,WACf8G,EAAc,6BACd1T,EAAM2T,sBAAwB,QAG5B3T,IAAUwT,IACZA,EAAa5G,aACb4G,EAAaG,sBAAwB,QAKrCxd,IAAWsM,KAAWA,GAAO2L,UAAYjY,IAAW0C,IAAO1C,EAAOiY,YACpEzI,GAAa,MAIVnI,EAAQ0N,gBAAmBzJ,EAAImB,QAAUzM,IAAW/L,WACvDqY,GAAO9I,WAAW8G,GAASoJ,iBAAiBpI,EAAItL,SAG/C2f,GAAa/M,GAA8BtH,KAG7CjE,EAAQ0N,gBAAkBzJ,EAAIoH,iBAAmBpH,EAAIoH,kBAC/C4K,GAAiB,EAI1B,SAASM,IACPvQ,GAAWpX,EAAMqW,IACjBgB,GAAoBrX,EAAMqW,GAAQjF,EAAQO,WAE1CkG,GAAe,CACbzC,SAAUxB,EACV9F,KAAM,SACNkK,KAAMvL,EACN2K,SAAUA,GACVC,kBAAmBA,GACnBlB,cAAed,MA2KrBkS,sBAAuB,KACvBqC,eAAgB,WACdhd,EAAI5O,SAAU,YAAalD,KAAKuqB,cAChCzY,EAAI5O,SAAU,YAAalD,KAAKuqB,cAChCzY,EAAI5O,SAAU,cAAelD,KAAKuqB,cAClCzY,EAAI5O,SAAU,WAAY2e,IAC1B/P,EAAI5O,SAAU,YAAa2e,IAC3B/P,EAAI5O,SAAU,YAAa2e,KAE7BkN,aAAc,WACZ,IAAIpF,EAAgB3pB,KAAK2R,GAAGgY,cAC5B7X,EAAI6X,EAAe,UAAW3pB,KAAK+pB,SACnCjY,EAAI6X,EAAe,WAAY3pB,KAAK+pB,SACpCjY,EAAI6X,EAAe,YAAa3pB,KAAK+pB,SACrCjY,EAAI6X,EAAe,cAAe3pB,KAAK+pB,SACvCjY,EAAI5O,SAAU,cAAelD,OAE/B+pB,QAAS,SAETxP,GACE,IAAI5I,EAAK3R,KAAK2R,GACV2E,EAAUtW,KAAKsW,QAEnBgG,GAAWpX,EAAMqW,IACjBgB,GAAoBrX,EAAMqW,GAAQjF,EAAQO,WAC1CuD,GAAY,OAAQpa,KAAM,CACxBua,IAAKA,IAEPiB,GAAWD,IAAUA,GAAO9I,WAE5B6J,GAAWpX,EAAMqW,IACjBgB,GAAoBrX,EAAMqW,GAAQjF,EAAQO,WAEtCH,GAAS8D,gBAMbqE,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBgQ,cAAchvB,KAAK8rB,SACnBnG,aAAa3lB,KAAKoqB,iBAElB9B,GAAgBtoB,KAAK4rB,SAErBtD,GAAgBtoB,KAAKisB,cAGjBjsB,KAAK6kB,kBACP/S,EAAI5O,SAAU,OAAQlD,MACtB8R,EAAIH,EAAI,YAAa3R,KAAKwqB,eAG5BxqB,KAAK8uB,iBAEL9uB,KAAK+uB,eAED3d,GACFtL,EAAI5C,SAASmV,KAAM,cAAe,IAGpCvS,EAAIyV,GAAQ,YAAa,IAErBhB,IACEyB,KACFzB,EAAImD,YAAcnD,EAAImH,kBACrBpL,EAAQyN,YAAcxJ,EAAIoH,mBAG7BlG,IAAWA,GAAQhJ,YAAcgJ,GAAQhJ,WAAWhK,YAAYgT,KAE5DC,KAAWF,IAAYS,IAA2C,UAA5BA,GAAY8B,cAEpDlC,IAAWA,GAAQpJ,YAAcoJ,GAAQpJ,WAAWhK,YAAYoT,IAG9DN,KACEvb,KAAK6kB,iBACP/S,EAAIyJ,GAAQ,UAAWvb,MAGzB6nB,GAAkBtM,IAElBA,GAAOlI,MAAM,eAAiB,GAG1B2I,KAAU6C,IACZ9L,EAAYwI,GAAQU,GAAcA,GAAY3F,QAAQgN,WAAatjB,KAAKsW,QAAQgN,YAAY,GAG9FvQ,EAAYwI,GAAQvb,KAAKsW,QAAQiN,aAAa,GAE9CxG,GAAe,CACbzC,SAAUta,KACVgT,KAAM,WACNkK,KAAM1B,GACNc,SAAU,KACVC,kBAAmB,KACnBlB,cAAed,IAGbmB,KAAWF,IACTc,IAAY,IAEdS,GAAe,CACbrB,OAAQF,GACRxI,KAAM,MACNkK,KAAM1B,GACN2B,OAAQzB,GACRL,cAAed,IAIjBwC,GAAe,CACbzC,SAAUta,KACVgT,KAAM,SACNkK,KAAM1B,GACNH,cAAed,IAIjBwC,GAAe,CACbrB,OAAQF,GACRxI,KAAM,OACNkK,KAAM1B,GACN2B,OAAQzB,GACRL,cAAed,IAGjBwC,GAAe,CACbzC,SAAUta,KACVgT,KAAM,OACNkK,KAAM1B,GACNH,cAAed,KAInB0B,IAAeA,GAAYgT,QAEvB3S,KAAaF,IACXE,IAAY,IAEdS,GAAe,CACbzC,SAAUta,KACVgT,KAAM,SACNkK,KAAM1B,GACNH,cAAed,IAGjBwC,GAAe,CACbzC,SAAUta,KACVgT,KAAM,OACNkK,KAAM1B,GACNH,cAAed,KAMnB7D,GAASyF,SAEK,MAAZG,KAAkC,IAAdA,KACtBA,GAAWF,GACXG,GAAoBF,IAGtBU,GAAe,CACbzC,SAAUta,KACVgT,KAAM,MACNkK,KAAM1B,GACNH,cAAed,IAIjBva,KAAKivB,WA9ITjvB,KAAKirB,YAqJTA,SAAU,WACR7Q,GAAY,UAAWpa,MACvB0b,GAASH,GAASC,GAAWC,GAAUE,GAASE,GAAUD,GAAaE,GAAcqC,GAASC,GAAWpC,GAAQM,GAAWC,GAAoBH,GAAWC,GAAoBoC,GAAaC,GAAgBzC,GAAciC,GAAcxH,GAASE,QAAUF,GAASC,MAAQD,GAASU,MAAQV,GAASyF,OAAS,KAC/SiD,GAAkBhQ,SAAQ,SAAUuC,GAClCA,EAAGwX,SAAU,KAEf/J,GAAkBre,OAASsd,GAASC,GAAS,GAE/C4Q,YAAa,SAEb3U,GACE,OAAQA,EAAIkO,MACV,IAAK,OACL,IAAK,UACHzoB,KAAK+pB,QAAQxP,GAEb,MAEF,IAAK,YACL,IAAK,WACCgB,KACFvb,KAAKyiB,YAAYlI,GA8K3B,SAEAA,GACMA,EAAIuJ,eACNvJ,EAAIuJ,aAAaqL,WAAa,QAGhC5U,EAAImD,YAAcnD,EAAImH,iBAnLd0N,CAAgB7U,IAGlB,MAEF,IAAK,cACHA,EAAImH,mBASV2N,QAAS,WAQP,IAPA,IACI1d,EADA2d,EAAQ,GAERzqB,EAAW7E,KAAK2R,GAAG9M,SACnB/D,EAAI,EACJwT,EAAIzP,EAAS9D,OACbuV,EAAUtW,KAAKsW,QAEZxV,EAAIwT,EAAGxT,IAGR4R,EAFJf,EAAK9M,EAAS/D,GAEEwV,EAAQO,UAAW7W,KAAK2R,IAAI,IAC1C2d,EAAMjuB,KAAKsQ,EAAG4d,aAAajZ,EAAQ2N,aAAe8D,GAAYpW,IAIlE,OAAO2d,GAOTxM,KAAM,SAAcwM,EAAOE,GACzB,IAAIC,EAAQ,GACR/T,EAAS1b,KAAK2R,GAClB3R,KAAKqvB,UAAUjgB,SAAQ,SAAUnQ,EAAI6B,GACnC,IAAI6Q,EAAK+J,EAAO7W,SAAS/D,GAErB4R,EAAQf,EAAI3R,KAAKsW,QAAQO,UAAW6E,GAAQ,KAC9C+T,EAAMxwB,GAAM0S,KAEb3R,MACHwvB,GAAgBxvB,KAAK+kB,wBACrBuK,EAAMlgB,SAAQ,SAAUnQ,GAClBwwB,EAAMxwB,KACRyc,EAAOjT,YAAYgnB,EAAMxwB,IACzByc,EAAOrY,YAAYosB,EAAMxwB,QAG7BuwB,GAAgBxvB,KAAK0lB,cAMvBuJ,KAAM,WACJ,IAAIlM,EAAQ/iB,KAAKsW,QAAQyM,MACzBA,GAASA,EAAM2M,KAAO3M,EAAM2M,IAAI1vB,OASlC0S,QAAS,SAAmBf,EAAIM,GAC9B,OAAOS,EAAQf,EAAIM,GAAYjS,KAAKsW,QAAQO,UAAW7W,KAAK2R,IAAI,IASlEqI,OAAQ,SAAgBhH,EAAMjD,GAC5B,IAAIuG,EAAUtW,KAAKsW,QAEnB,QAAc,IAAVvG,EACF,OAAOuG,EAAQtD,GAEf,IAAIiI,EAAgBpB,GAAciB,aAAa9a,KAAMgT,EAAMjD,GAGzDuG,EAAQtD,QADmB,IAAlBiI,EACOA,EAEAlL,EAGL,UAATiD,GACF+N,GAAczK,IAQpBqZ,QAAS,WACPvV,GAAY,UAAWpa,MACvB,IAAI2R,EAAK3R,KAAK2R,GACdA,EAAG4H,GAAW,KACdzH,EAAIH,EAAI,YAAa3R,KAAK8kB,aAC1BhT,EAAIH,EAAI,aAAc3R,KAAK8kB,aAC3BhT,EAAIH,EAAI,cAAe3R,KAAK8kB,aAExB9kB,KAAK6kB,kBACP/S,EAAIH,EAAI,WAAY3R,MACpB8R,EAAIH,EAAI,YAAa3R,OAIvB4vB,MAAM9f,UAAUV,QAAQiB,KAAKsB,EAAGke,iBAAiB,gBAAgB,SAAUle,GACzEA,EAAGme,gBAAgB,gBAGrB9vB,KAAK+pB,UAEL/pB,KAAKgqB,4BAELjL,GAAUyG,OAAOzG,GAAU5Z,QAAQnF,KAAK2R,IAAK,GAC7C3R,KAAK2R,GAAKA,EAAK,MAEjBga,WAAY,WACV,IAAK7P,GAAa,CAEhB,GADA1B,GAAY,YAAapa,MACrB0W,GAAS8D,cAAe,OAC5B1U,EAAI+V,GAAS,UAAW,QAEpB7b,KAAKsW,QAAQ8M,mBAAqBvH,GAAQpJ,YAC5CoJ,GAAQpJ,WAAWhK,YAAYoT,IAGjCC,IAAc,IAGlB+S,WAAY,SAAoB5S,GAC9B,GAAgC,UAA5BA,EAAY8B,aAMhB,GAAIjC,GAAa,CAEf,GADA1B,GAAY,YAAapa,MACrB0W,GAAS8D,cAAe,OAExBe,GAAO9I,YAAciJ,IAAW1b,KAAKsW,QAAQ6K,MAAMM,YAE5C9F,GACTD,GAAOmQ,aAAahQ,GAASF,IAE7BD,GAAOrY,YAAYwY,IAJnBH,GAAOmQ,aAAahQ,GAASN,IAO3Bvb,KAAKsW,QAAQ6K,MAAMM,aACrBzhB,KAAKumB,QAAQhL,GAAQM,IAGvB/V,EAAI+V,GAAS,UAAW,IACxBC,IAAc,QAtBd9b,KAAK2rB,eA8LPtM,IACF3N,EAAGxO,SAAU,aAAa,SAAUqX,IAC7B7D,GAASyF,QAAU0C,KAAwBtE,EAAImD,YAClDnD,EAAImH,oBAMVhL,GAASqZ,MAAQ,CACfre,GAAIA,EACJI,IAAKA,EACLhM,IAAKA,EACLoO,KAAMA,EACN8b,GAAI,SAAYre,EAAIM,GAClB,QAASS,EAAQf,EAAIM,EAAUN,GAAI,IAErCse,OAnjEF,SAAgBC,EAAKjI,GACnB,GAAIiI,GAAOjI,EACT,IAAK,IAAI5Y,KAAO4Y,EACVA,EAAI7X,eAAef,KACrB6gB,EAAI7gB,GAAO4Y,EAAI5Y,IAKrB,OAAO6gB,GA2iEPxX,SAAUA,EACVhG,QAASA,EACTK,YAAaA,EACbqE,MAAOA,EACPlS,MAAOA,EACPirB,SAAU9H,GACV+H,eAAgB9H,GAChB+H,gBAAiBzQ,GACjBxJ,SAAUA,GAQZM,GAAStN,IAAM,SAAUknB,GACvB,OAAOA,EAAQ/W,IAQjB7C,GAASoD,MAAQ,WACf,IAAK,IAAIyW,EAAOrhB,UAAUnO,OAAQ2Y,EAAU,IAAIkW,MAAMW,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF9W,EAAQ8W,GAAQthB,UAAUshB,GAGxB9W,EAAQ,GAAG5Z,cAAgB8vB,QAAOlW,EAAUA,EAAQ,IACxDA,EAAQtK,SAAQ,SAAU2K,GACxB,IAAKA,EAAOjK,YAAciK,EAAOjK,UAAUhQ,YACzC,KAAM,gEAAgEqa,OAAO,GAAGrQ,SAASuG,KAAK0J,IAG5FA,EAAOgW,QAAOrZ,GAASqZ,MAAQ/gB,EAAeA,EAAe,GAAI0H,GAASqZ,OAAQhW,EAAOgW,QAC7FlW,GAAcC,MAAMC,OAUxBrD,GAAS+Z,OAAS,SAAU9e,EAAI2E,GAC9B,OAAO,IAAII,GAAS/E,EAAI2E,IAI1BI,GAASga,QAxgFO,SA0gFhB,IACIC,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAc,GAGdC,IAAY,EAoHhB,SAASC,KACPF,GAAY7hB,SAAQ,SAAUgiB,GAC5BpC,cAAcoC,EAAWC,QAE3BJ,GAAc,GAGhB,SAASK,KACPtC,cAAcgC,IAGhB,IAuLIO,GAvLAH,GAAa1Y,GAAS,SAAU6B,EAAKjE,EAASoF,EAAQ8V,GAExD,GAAKlb,EAAQmb,OAAb,CACA,IAMIC,EANAzY,GAAKsB,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,GAAKyH,QACzC9I,GAAKqB,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,GAAK0H,QACzC0P,EAAOrb,EAAQsb,kBACfC,EAAQvb,EAAQwb,YAChBta,EAAcjD,IACdwd,GAAqB,EAGrBnB,KAAiBlV,IACnBkV,GAAelV,EACfyV,KACAR,GAAWra,EAAQmb,OACnBC,EAAiBpb,EAAQ0b,UAER,IAAbrB,KACFA,GAAW1a,EAA2ByF,GAAQ,KAIlD,IAAIuW,EAAY,EACZC,EAAgBvB,GAEpB,EAAG,CACD,IAAIhf,EAAKugB,EACL7P,EAAO3N,EAAQ/C,GACfqD,EAAMqN,EAAKrN,IACXE,EAASmN,EAAKnN,OACdD,EAAOoN,EAAKpN,KACZE,EAAQkN,EAAKlN,MACb3H,EAAQ6U,EAAK7U,MACbC,EAAS4U,EAAK5U,OACd0kB,OAAa,EACbC,OAAa,EACbra,EAAcpG,EAAGoG,YACjBE,EAAetG,EAAGsG,aAClB4H,EAAQ/Z,EAAI6L,GACZ0gB,EAAa1gB,EAAG8F,WAChB6a,EAAa3gB,EAAG+F,UAEhB/F,IAAO6F,GACT2a,EAAa3kB,EAAQuK,IAAoC,SAApB8H,EAAM1H,WAA4C,WAApB0H,EAAM1H,WAA8C,YAApB0H,EAAM1H,WACzGia,EAAa3kB,EAASwK,IAAqC,SAApB4H,EAAMzH,WAA4C,WAApByH,EAAMzH,WAA8C,YAApByH,EAAMzH,aAE3G+Z,EAAa3kB,EAAQuK,IAAoC,SAApB8H,EAAM1H,WAA4C,WAApB0H,EAAM1H,WACzEia,EAAa3kB,EAASwK,IAAqC,SAApB4H,EAAMzH,WAA4C,WAApByH,EAAMzH,YAG7E,IAAIma,EAAKJ,IAAehwB,KAAKkoB,IAAIlV,EAAQ8D,IAAM0Y,GAAQU,EAAa7kB,EAAQuK,IAAgB5V,KAAKkoB,IAAIpV,EAAOgE,IAAM0Y,KAAUU,GACxHG,EAAKJ,IAAejwB,KAAKkoB,IAAInV,EAASgE,IAAMyY,GAAQW,EAAa7kB,EAASwK,IAAiB9V,KAAKkoB,IAAIrV,EAAMkE,IAAMyY,KAAUW,GAE9H,IAAKrB,GAAYgB,GACf,IAAK,IAAInxB,EAAI,EAAGA,GAAKmxB,EAAWnxB,IACzBmwB,GAAYnwB,KACfmwB,GAAYnwB,GAAK,IAKnBmwB,GAAYgB,GAAWM,IAAMA,GAAMtB,GAAYgB,GAAWO,IAAMA,GAAMvB,GAAYgB,GAAWtgB,KAAOA,IACtGsf,GAAYgB,GAAWtgB,GAAKA,EAC5Bsf,GAAYgB,GAAWM,GAAKA,EAC5BtB,GAAYgB,GAAWO,GAAKA,EAC5BxD,cAAciC,GAAYgB,GAAWZ,KAE3B,GAANkB,GAAiB,GAANC,IACbT,GAAqB,EAGrBd,GAAYgB,GAAWZ,IAAMtF,YAAY,WAEnCyF,GAA6B,IAAfxxB,KAAKyyB,OACrB/b,GAASyF,OAAOoO,aAAawG,IAI/B,IAAI2B,EAAgBzB,GAAYjxB,KAAKyyB,OAAOD,GAAKvB,GAAYjxB,KAAKyyB,OAAOD,GAAKX,EAAQ,EAClFc,EAAgB1B,GAAYjxB,KAAKyyB,OAAOF,GAAKtB,GAAYjxB,KAAKyyB,OAAOF,GAAKV,EAAQ,EAExD,mBAAnBH,GACoI,aAAzIA,EAAerhB,KAAKqG,GAASE,QAAQnE,WAAW8G,GAAUoZ,EAAeD,EAAenY,EAAKwW,GAAYE,GAAYjxB,KAAKyyB,OAAO9gB,KAKvIqH,EAASiY,GAAYjxB,KAAKyyB,OAAO9gB,GAAIghB,EAAeD,IACpDpX,KAAK,CACLmX,MAAOR,IACL,MAIRA,UACO3b,EAAQsc,cAAgBV,IAAkB1a,IAAgB0a,EAAgBjc,EAA2Bic,GAAe,KAE7HhB,GAAYa,KACX,IAECc,GAAO,SAAczX,GACvB,IAAIC,EAAgBD,EAAKC,cACrBY,EAAcb,EAAKa,YACnBV,EAASH,EAAKG,OACdW,EAAiBd,EAAKc,eACtBY,EAAwB1B,EAAK0B,sBAC7BN,EAAqBpB,EAAKoB,mBAC1BE,EAAuBtB,EAAKsB,qBAChC,GAAKrB,EAAL,CACA,IAAIyX,EAAa7W,GAAeC,EAChCM,IACA,IAAIkM,EAAQrN,EAAc0X,gBAAkB1X,EAAc0X,eAAehyB,OAASsa,EAAc0X,eAAe,GAAK1X,EAChHpM,EAAS/L,SAASioB,iBAAiBzC,EAAM1G,QAAS0G,EAAMzG,SAC5DvF,IAEIoW,IAAeA,EAAWnhB,GAAG4W,SAAStZ,KACxC6N,EAAsB,SACtB9c,KAAKgzB,QAAQ,CACXzX,OAAQA,EACRU,YAAaA,OAKnB,SAASgX,MAsCT,SAASC,MApCTD,GAAOnjB,UAAY,CACjBqjB,WAAY,KACZC,UAAW,SAAmBC,GAC5B,IAAIhX,EAAoBgX,EAAMhX,kBAC9Brc,KAAKmzB,WAAa9W,GAEpB2W,QAAS,SAAiBM,GACxB,IAAI/X,EAAS+X,EAAM/X,OACfU,EAAcqX,EAAMrX,YACxBjc,KAAKsa,SAASyK,wBAEV9I,GACFA,EAAY8I,wBAGd,IAAI6E,EAAcxT,EAASpW,KAAKsa,SAAS3I,GAAI3R,KAAKmzB,WAAYnzB,KAAKsW,SAE/DsT,EACF5pB,KAAKsa,SAAS3I,GAAGka,aAAatQ,EAAQqO,GAEtC5pB,KAAKsa,SAAS3I,GAAGtO,YAAYkY,GAG/Bvb,KAAKsa,SAASoL,aAEVzJ,GACFA,EAAYyJ,cAGhBmN,KAAMA,IAGR3iB,EAAS+iB,GAAQ,CACf/Y,WAAY,kBAKdgZ,GAAOpjB,UAAY,CACjBkjB,QAAS,SAAiBO,GACxB,IAAIhY,EAASgY,EAAMhY,OAEfiY,EADcD,EAAMtX,aACYjc,KAAKsa,SACzCkZ,EAAezO,wBACfxJ,EAAO9I,YAAc8I,EAAO9I,WAAWhK,YAAY8S,GACnDiY,EAAe9N,cAEjBmN,KAAMA,IAGR3iB,EAASgjB,GAAQ,CACfhZ,WAAY,kBAGdxD,GAASoD,MAAM,IA7Sf,WACE,SAAS2Z,IASP,IAAK,IAAI7hB,KART5R,KAAK2Z,SAAW,CACd8X,QAAQ,EACRiC,yBAAyB,EACzB9B,kBAAmB,GACnBE,YAAa,GACbc,cAAc,GAGD5yB,KACQ,MAAjB4R,EAAGhH,OAAO,IAAkC,mBAAb5K,KAAK4R,KACtC5R,KAAK4R,GAAM5R,KAAK4R,GAAI0J,KAAKtb,OA4F/B,OAvFAyzB,EAAW3jB,UAAY,CACrBiM,YAAa,SAAqBX,GAChC,IAAIC,EAAgBD,EAAKC,cAErBrb,KAAKsa,SAASuK,gBAChBnT,EAAGxO,SAAU,WAAYlD,KAAK2zB,mBAE1B3zB,KAAKsW,QAAQsO,eACflT,EAAGxO,SAAU,cAAelD,KAAK4zB,2BACxBvY,EAAcyG,QACvBpQ,EAAGxO,SAAU,YAAalD,KAAK4zB,2BAE/BliB,EAAGxO,SAAU,YAAalD,KAAK4zB,4BAIrCC,kBAAmB,SAA2BR,GAC5C,IAAIhY,EAAgBgY,EAAMhY,cAGrBrb,KAAKsW,QAAQwd,gBAAmBzY,EAAcK,QACjD1b,KAAK2zB,kBAAkBtY,IAG3BwX,KAAM,WACA7yB,KAAKsa,SAASuK,gBAChB/S,EAAI5O,SAAU,WAAYlD,KAAK2zB,oBAE/B7hB,EAAI5O,SAAU,cAAelD,KAAK4zB,2BAClC9hB,EAAI5O,SAAU,YAAalD,KAAK4zB,2BAChC9hB,EAAI5O,SAAU,YAAalD,KAAK4zB,4BAGlCtC,KACAH,KAhoEJxL,aAAa9S,GACbA,OAAmB,GAkoEjBkhB,QAAS,WACPhD,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAYlwB,OAAS,GAEvB6yB,0BAA2B,SAAmCrZ,GAC5Dva,KAAK2zB,kBAAkBpZ,GAAK,IAE9BoZ,kBAAmB,SAA2BpZ,EAAKwQ,GACjD,IAAIjS,EAAQ9Y,KAERiZ,GAAKsB,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,GAAKyH,QACzC9I,GAAKqB,EAAIuH,QAAUvH,EAAIuH,QAAQ,GAAKvH,GAAK0H,QACzCrK,EAAO1U,SAASioB,iBAAiBlS,EAAGC,GAMxC,GALA6X,GAAaxW,EAKTwQ,GAAY/qB,KAAKsW,QAAQod,yBAA2BxiB,GAAQD,GAAcG,EAAQ,CACpFggB,GAAW7W,EAAKva,KAAKsW,QAASsB,EAAMmT,GAEpC,IAAIiJ,EAAiB/d,EAA2B2B,GAAM,IAElDsZ,IAAeF,IAA8B/X,IAAM4X,IAAmB3X,IAAM4X,KAC9EE,IAA8BM,KAE9BN,GAA6BjF,aAAY,WACvC,IAAIkI,EAAUhe,EAA2B/S,SAASioB,iBAAiBlS,EAAGC,IAAI,GAEtE+a,IAAYD,IACdA,EAAiBC,EACjB9C,MAGFC,GAAW7W,EAAKzB,EAAMxC,QAAS2d,EAASlJ,KACvC,IACH8F,GAAkB5X,EAClB6X,GAAkB5X,OAEf,CAEL,IAAKlZ,KAAKsW,QAAQsc,cAAgB3c,EAA2B2B,GAAM,KAAUrD,IAE3E,YADA4c,KAIFC,GAAW7W,EAAKva,KAAKsW,QAASL,EAA2B2B,GAAM,IAAQ,MAItE1H,EAASujB,EAAY,CAC1BvZ,WAAY,SACZN,qBAAqB,MAoMzBlD,GAASoD,MAAMoZ,GAAQD,IAGvB,SAAW1B,GACP,IAAW2C,EAKAC,EAIAC,EAIAC,GAbAH,EAIR3C,EAAW2C,qBAAuB3C,EAAW2C,mBAAqB,KAHzC,IAAI,MAC5BA,EAAyB,KAAI,OAC7BA,EAA2B,OAAI,UAExBC,EAGR5C,EAAW4C,yBAA2B5C,EAAW4C,uBAAyB,KAF3C,MAAI,QAClCA,EAAgC,QAAI,WAE7BC,EAGR7C,EAAW6C,mBAAqB7C,EAAW6C,iBAAmB,KAFpC,OAAI,SAC7BA,EAAuB,KAAI,QAEpBC,EAGR9C,EAAW8C,aAAe9C,EAAW8C,WAAa,KAF/B,MAAI,QACtBA,EAAuB,WAAI,aAhBnC,CAkBG9C,KAAeA,GAAa,KAE/B,IAAI+C,GAAgB,CAAC10B,QAAS,IAE9B,SAAS20B,GAAW5kB,GAuBhB,OAtBIA,aAAe6kB,IACf7kB,EAAImR,MAAQnR,EAAI8kB,OAAS9kB,EAAI+f,IAAM,WAC/B,MAAM,IAAIpwB,MAAM,qBAEbqQ,aAAe+kB,MACtB/kB,EAAIglB,IAAMhlB,EAAImR,MAAQnR,EAAI8kB,OAAS,WAC/B,MAAM,IAAIn1B,MAAM,sBAKxBG,OAAOm1B,OAAOjlB,GAEdlQ,OAAOo1B,oBAAoBllB,GAAKP,SAAQ,SAAU4D,GAC9C,IAAI3O,EAAOsL,EAAIqD,GAGI,iBAAR3O,GAAqB5E,OAAOq1B,SAASzwB,IAC5CkwB,GAAWlwB,MAIZsL,EAGX2kB,GAAc10B,QAAU20B,GACxBD,GAAc10B,QAAQm1B,QAAUR,GAEhC,IAAIS,GAAeV,GAAc10B,QAMjC,MAAMq1B,GAIJn1B,YAAYo1B,QAEQnoB,IAAdmoB,EAAKhsB,OAAoBgsB,EAAKhsB,KAAO,IAEzClJ,KAAKkJ,KAAOgsB,EAAKhsB,KACjBlJ,KAAKm1B,gBAAiB,EAGxBC,cACEp1B,KAAKm1B,gBAAiB,GAQ1B,SAASE,GAAWtlB,GAClB,OAAOA,EACJoD,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAWnB,SAASmiB,GAAUC,KAAaC,GAE9B,MAAMvpB,EAASxM,OAAOgxB,OAAO,MAE7B,IAAK,MAAMphB,KAAOkmB,EAChBtpB,EAAOoD,GAAOkmB,EAASlmB,GAOzB,OALAmmB,EAAQpmB,SAAQ,SAASO,GACvB,IAAK,MAAMN,KAAOM,EAChB1D,EAAOoD,GAAOM,EAAIN,MAGE,EAe1B,MAMMomB,GAAqBC,KAChBA,EAAKC,KAoBhB,MAAMC,GAOJ91B,YAAY+1B,EAAWvf,GACrBtW,KAAK81B,OAAS,GACd91B,KAAK+1B,YAAczf,EAAQyf,YAC3BF,EAAUG,KAAKh2B,MAOjBi2B,QAAQzyB,GACNxD,KAAK81B,QAAUT,GAAW7xB,GAO5B0yB,SAASR,GACP,IAAKD,GAAkBC,GAAO,OAE9B,IAAIS,EAAQT,EAAKC,KAEfQ,EADET,EAAKU,YACC,YAAYD,IA1CF,EAACnjB,GAAQzJ,OAAAA,MAC/B,GAAIyJ,EAAKqjB,SAAS,KAAM,CACtB,MAAMC,EAAStjB,EAAKlH,MAAM,KAC1B,MAAO,CACL,GAAGvC,IAAS+sB,EAAOhqB,aACfgqB,EAAOx3B,KAAI,CAACma,EAAGnY,IAAM,GAAGmY,IAAI,IAAIsd,OAAOz1B,EAAI,QAC/CqK,KAAK,KAET,MAAO,GAAG5B,IAASyJ,KAoCPwjB,CAAgBL,EAAO,CAAE5sB,OAAQvJ,KAAK+1B,cAEhD/1B,KAAKy2B,KAAKN,GAOZO,UAAUhB,GACHD,GAAkBC,KAEvB11B,KAAK81B,QAvEU,WA6EjB/lB,QACE,OAAO/P,KAAK81B,OASdW,KAAKvjB,GACHlT,KAAK81B,QAAU,gBAAgB5iB,OASnC,MAAMyjB,GACJ72B,cAEEE,KAAK42B,SAAW,CAAE/xB,SAAU,IAC5B7E,KAAK62B,MAAQ,CAAC72B,KAAK42B,UAGjB5hB,UACF,OAAOhV,KAAK62B,MAAM72B,KAAK62B,MAAM91B,OAAS,GAGpCioB,WAAS,OAAOhpB,KAAK42B,SAGzBjC,IAAIe,GACF11B,KAAKgV,IAAInQ,SAASxD,KAAKq0B,GAIzBQ,SAASP,GAEP,MAAMD,EAAO,CAAEC,KAAAA,EAAM9wB,SAAU,IAC/B7E,KAAK20B,IAAIe,GACT11B,KAAK62B,MAAMx1B,KAAKq0B,GAGlBgB,YACE,GAAI12B,KAAK62B,MAAM91B,OAAS,EACtB,OAAOf,KAAK62B,MAAMC,MAMtBC,gBACE,KAAO/2B,KAAK02B,eAGdM,SACE,OAAOC,KAAKC,UAAUl3B,KAAK42B,SAAU,KAAM,GAO7CZ,KAAKmB,GAEH,OAAOn3B,KAAKF,YAAYs3B,MAAMD,EAASn3B,KAAK42B,UAS9CS,aAAaF,EAASzB,GAQpB,MAPoB,iBAATA,EACTyB,EAAQlB,QAAQP,GACPA,EAAK7wB,WACdsyB,EAAQjB,SAASR,GACjBA,EAAK7wB,SAASuK,SAAS6V,GAAUjlB,KAAKo3B,MAAMD,EAASlS,KACrDkS,EAAQT,UAAUhB,IAEbyB,EAMTE,iBAAiB3B,GACK,iBAATA,GACNA,EAAK7wB,WAEN6wB,EAAK7wB,SAASyyB,OAAM3lB,GAAoB,iBAAPA,IAGnC+jB,EAAK7wB,SAAW,CAAC6wB,EAAK7wB,SAASsG,KAAK,KAEpCuqB,EAAK7wB,SAASuK,SAAS6V,IACrB0R,GAAUY,UAAUtS,QA0B5B,MAAMuS,WAAyBb,GAI7B72B,YAAYwW,GACVmhB,QACAz3B,KAAKsW,QAAUA,EAOjBohB,WAAWl0B,EAAMmyB,GACF,KAATnyB,IAEJxD,KAAKk2B,SAASP,GACd31B,KAAKi2B,QAAQzyB,GACbxD,KAAK02B,aAMPT,QAAQzyB,GACO,KAATA,GAEJxD,KAAK20B,IAAInxB,GAOXm0B,eAAeC,EAAS5kB,GAEtB,MAAM0iB,EAAOkC,EAAQ5O,KACrB0M,EAAKC,KAAO3iB,EACZ0iB,EAAKU,aAAc,EACnBp2B,KAAK20B,IAAIe,GAGXmC,SAEE,OADiB,IAAIjC,GAAa51B,KAAMA,KAAKsW,SAC7BvG,QAGlB+nB,WACE,OAAO,GAaX,SAAS3oB,GAAO4oB,GACd,OAAKA,EACa,iBAAPA,EAAwBA,EAE5BA,EAAG5oB,OAHM,KAUlB,SAAS6oB,GAAUD,GACjB,OAAO5d,GAAO,MAAO4d,EAAI,KAO3B,SAASE,GAAiBF,GACxB,OAAO5d,GAAO,MAAO4d,EAAI,MAO3B,SAASG,GAASH,GAChB,OAAO5d,GAAO,MAAO4d,EAAI,MAO3B,SAAS5d,MAAUtB,GAEjB,OADeA,EAAK/Z,KAAKma,GAAM9J,GAAO8J,KAAI9N,KAAK,IA4BjD,SAASgtB,MAAUtf,GAEjB,MAAMuf,EAtBR,SAA8Bvf,GAC5B,MAAMuf,EAAOvf,EAAKA,EAAK9X,OAAS,GAEhC,MAAoB,iBAATq3B,GAAqBA,EAAKt4B,cAAgBL,QACnDoZ,EAAK2M,OAAO3M,EAAK9X,OAAS,EAAG,GACtBq3B,GAEA,GAeIC,CAAqBxf,GAIlC,MAHe,KACVuf,EAAK5mB,QAAU,GAAK,MACrBqH,EAAK/Z,KAAKma,GAAM9J,GAAO8J,KAAI9N,KAAK,KAAO,IAQ7C,SAASmtB,GAAiBP,GACxB,OAAO,IAAKQ,OAAOR,EAAGjuB,WAAa,KAAM0uB,KAAK,IAAIz3B,OAAS,EAoB7D,MAAM03B,GAAa,iDAanB,SAASC,GAAuBC,GAAS,SAAEC,IACzC,IAAIC,EAAc,EAElB,OAAOF,EAAQ75B,KAAKg6B,IAClBD,GAAe,EACf,MAAME,EAASF,EACf,IAAId,EAAK5oB,GAAO2pB,GACZE,EAAM,GAEV,KAAOjB,EAAGh3B,OAAS,GAAG,CACpB,MAAMiQ,EAAQynB,GAAWD,KAAKT,GAC9B,IAAK/mB,EAAO,CACVgoB,GAAOjB,EACP,MAEFiB,GAAOjB,EAAG7lB,UAAU,EAAGlB,EAAM9L,OAC7B6yB,EAAKA,EAAG7lB,UAAUlB,EAAM9L,MAAQ8L,EAAM,GAAGjQ,QACrB,OAAhBiQ,EAAM,GAAG,IAAeA,EAAM,GAEhCgoB,GAAO,KAAOC,OAAO5U,OAAOrT,EAAM,IAAM+nB,IAExCC,GAAOhoB,EAAM,GACI,MAAbA,EAAM,IACR6nB,KAIN,OAAOG,KACNl6B,KAAIi5B,GAAM,IAAIA,OAAO5sB,KAAKytB,GAO/B,MACMM,GAAa,eACbC,GAAsB,gBACtBC,GAAY,oBACZC,GAAc,yEACdC,GAAmB,eA4BnBC,GAAmB,CACvBC,MAAO,eAAgBC,UAAW,GAE9BC,GAAmB,CACvBvD,MAAO,SACPqD,MAAO,IACPG,IAAK,IACLC,QAAS,MACTrR,SAAU,CAACgR,KAEPM,GAAoB,CACxB1D,MAAO,SACPqD,MAAO,IACPG,IAAK,IACLC,QAAS,MACTrR,SAAU,CAACgR,KAaPO,GAAU,SAASN,EAAOG,EAAKI,EAAc,IACjD,MAAM7E,EAAOI,GACX,CACEa,MAAO,UACPqD,MAAAA,EACAG,IAAAA,EACApR,SAAU,IAEZwR,GAEF7E,EAAK3M,SAASlnB,KAAK,CACjB80B,MAAO,SAGPqD,MAAO,mDACPG,IAAK,2CACLK,cAAc,EACdP,UAAW,IAEb,MAAMQ,EAAe9B,GAEnB,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEA,iCACA,qBACA,qBA4BF,OAzBAjD,EAAK3M,SAASlnB,KACZ,CAgBEm4B,MAAOrf,GACL,OACA,IACA8f,EACA,uBACA,UAGC/E,GAEHgF,GAAsBJ,GAAQ,KAAM,KACpCK,GAAuBL,GAAQ,OAAQ,QACvCM,GAAoBN,GAAQ,IAAK,KACjCO,GAAc,CAClBlE,MAAO,SACPqD,MAAOJ,GACPK,UAAW,GAEPa,GAAgB,CACpBnE,MAAO,SACPqD,MAAOH,GACPI,UAAW,GAEPc,GAAqB,CACzBpE,MAAO,SACPqD,MAAOF,GACPG,UAAW,GAEPe,GAAc,CAOlBhB,MAAO,kBACPjR,SAAU,CAAC,CACT4N,MAAO,SACPqD,MAAO,KACPG,IAAK,aACLC,QAAS,KACTrR,SAAU,CACRgR,GACA,CACEC,MAAO,KACPG,IAAK,KACLF,UAAW,EACXlR,SAAU,CAACgR,SAKbkB,GAAa,CACjBtE,MAAO,QACPqD,MAAON,GACPO,UAAW,GAEPiB,GAAwB,CAC5BvE,MAAO,QACPqD,MAAOL,GACPM,UAAW,GAyBb,IAAIkB,GAAqBl7B,OAAOm1B,OAAO,CACnCgG,UAAW,KACXC,iBA3MqB,OA4MrBC,SAAU5B,GACVC,oBAAqBA,GACrBC,UAAWA,GACXC,YAAaA,GACbC,iBAAkBA,GAClByB,eA3MmB,+IA4MnBC,QAvMY,CAAC5C,EAAO,MACtB,MAAM6C,EAAe,YAQrB,OAPI7C,EAAK8C,SACP9C,EAAKoB,MAAQrf,GACX8gB,EACA,OACA7C,EAAK8C,OACL,SAEG5F,GAAU,CACfa,MAAO,OACPqD,MAAOyB,EACPtB,IAAK,IACLF,UAAW,EAEX,WAAY,CAAC0B,EAAGC,KACE,IAAZD,EAAEj2B,OAAak2B,EAAKhG,gBAEzBgD,IAsLDmB,iBAAkBA,GAClBG,iBAAkBA,GAClBG,kBAAmBA,GACnBwB,mBApKuB,CACzB7B,MAAO,8IAoKLM,QAASA,GACTI,oBAAqBA,GACrBC,qBAAsBA,GACtBC,kBAAmBA,GACnBC,YAAaA,GACbC,cAAeA,GACfC,mBAAoBA,GACpBC,YAAaA,GACbC,WAAYA,GACZC,sBAAuBA,GACvBY,aA/CiB,CAEnB9B,MAAO,uBACPC,UAAW,GA6CT8B,kBAnCsB,SAASrG,GACjC,OAAOz1B,OAAO0Q,OAAO+kB,EACnB,CAEE,WAAY,CAACiG,EAAGC,KAAWA,EAAKlyB,KAAKsyB,YAAcL,EAAE,IAErD,SAAU,CAACA,EAAGC,KAAeA,EAAKlyB,KAAKsyB,cAAgBL,EAAE,IAAIC,EAAKhG,oBA6DxE,SAASqG,GAAsBzqB,EAAOhJ,GAErB,MADAgJ,EAAM0qB,MAAM1qB,EAAM9L,MAAQ,IAEvC8C,EAASotB,cAQb,SAASuG,GAAezG,EAAM0G,QAEL7uB,IAAnBmoB,EAAKhiB,YACPgiB,EAAKiB,MAAQjB,EAAKhiB,iBACXgiB,EAAKhiB,WAQhB,SAAS2oB,GAAc3G,EAAMlf,GACtBA,GACAkf,EAAK2G,gBAOV3G,EAAKsE,MAAQ,OAAStE,EAAK2G,cAAc/vB,MAAM,KAAKX,KAAK,KAAO,sBAChE+pB,EAAK4G,cAAgBL,GACrBvG,EAAK6G,SAAW7G,EAAK6G,UAAY7G,EAAK2G,qBAC/B3G,EAAK2G,mBAKW9uB,IAAnBmoB,EAAKuE,YAAyBvE,EAAKuE,UAAY,IAOrD,SAASuC,GAAe9G,EAAM0G,GACvBhM,MAAMqM,QAAQ/G,EAAK0E,WAExB1E,EAAK0E,QAAUzB,MAAUjD,EAAK0E,UAOhC,SAASsC,GAAahH,EAAM0G,GAC1B,GAAK1G,EAAKlkB,MAAV,CACA,GAAIkkB,EAAKsE,OAAStE,EAAKyE,IAAK,MAAM,IAAIr6B,MAAM,4CAE5C41B,EAAKsE,MAAQtE,EAAKlkB,aACXkkB,EAAKlkB,OAOd,SAASmrB,GAAiBjH,EAAM0G,QAEP7uB,IAAnBmoB,EAAKuE,YAAyBvE,EAAKuE,UAAY,GAKrD,MAAM2C,GAAiB,CAAClH,EAAMlf,KAC5B,IAAKkf,EAAKmH,YAAa,OAGvB,GAAInH,EAAKoH,OAAQ,MAAM,IAAIh9B,MAAM,0CAEjC,MAAMi9B,EAAe98B,OAAO0Q,OAAO,GAAI+kB,GACvCz1B,OAAOD,KAAK01B,GAAM9lB,SAASC,WAAiB6lB,EAAK7lB,MAEjD6lB,EAAK6G,SAAWQ,EAAaR,SAC7B7G,EAAKsE,MAAQrf,GAAOoiB,EAAaF,YAAarE,GAAUuE,EAAa/C,QACrEtE,EAAKoH,OAAS,CACZ7C,UAAW,EACXlR,SAAU,CACR9oB,OAAO0Q,OAAOosB,EAAc,CAAEC,YAAY,MAG9CtH,EAAKuE,UAAY,SAEV8C,EAAaF,aAIhBI,GAAkB,CACtB,KACA,MACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,OACA,SAWF,SAASC,GAAgBC,EAAaC,EAAiBC,EARzB,WAU5B,MAAMC,EAAmBr9B,OAAOgxB,OAAO,MAiBvC,MAb2B,iBAAhBkM,EACTI,EAAYF,EAAWF,EAAY7wB,MAAM,MAChC8jB,MAAMqM,QAAQU,GACvBI,EAAYF,EAAWF,GAEvBl9B,OAAOD,KAAKm9B,GAAavtB,SAAQ,SAASytB,GAExCp9B,OAAO0Q,OACL2sB,EACAJ,GAAgBC,EAAYE,GAAYD,EAAiBC,OAIxDC,EAYP,SAASC,EAAYF,EAAWG,GAC1BJ,IACFI,EAAcA,EAAYl+B,KAAIma,GAAKA,EAAEvP,iBAEvCszB,EAAY5tB,SAAQ,SAAS6tB,GAC3B,MAAMC,EAAOD,EAAQnxB,MAAM,KAC3BgxB,EAAiBI,EAAK,IAAM,CAACL,EAAWM,GAAgBD,EAAK,GAAIA,EAAK,SAa5E,SAASC,GAAgBF,EAASG,GAGhC,OAAIA,EACK/Y,OAAO+Y,GAUlB,SAAuBH,GACrB,OAAOR,GAAgBpG,SAAS4G,EAAQvzB,eARjC2zB,CAAcJ,GAAW,EAAI,EAqBtC,MAAMK,GAAmB,GAKnBC,GAAS1zB,IACb3J,QAAQq9B,MAAM1zB,IAOV2zB,GAAO,CAAC3zB,KAAYgP,KACxB3Y,QAAQC,IAAI,SAAS0J,OAAcgP,IAO/B4kB,GAAa,CAAC/M,EAAS7mB,KACvByzB,GAAiB,GAAG5M,KAAW7mB,OAEnC3J,QAAQC,IAAI,oBAAoBuwB,MAAY7mB,KAC5CyzB,GAAiB,GAAG5M,KAAW7mB,MAAa,IASxC6zB,GAAkB,IAAIp+B,MA8B5B,SAASq+B,GAAgBzI,EAAM0I,GAAS,IAAEvuB,IACxC,IAAI0pB,EAAS,EACb,MAAM8E,EAAa3I,EAAK7lB,GAElByuB,EAAO,GAEPC,EAAY,GAElB,IAAK,IAAIj9B,EAAI,EAAGA,GAAK88B,EAAQ78B,OAAQD,IACnCi9B,EAAUj9B,EAAIi4B,GAAU8E,EAAW/8B,GACnCg9B,EAAKh9B,EAAIi4B,IAAU,EACnBA,GAAUT,GAAiBsF,EAAQ98B,EAAI,IAIzCo0B,EAAK7lB,GAAO0uB,EACZ7I,EAAK7lB,GAAK2uB,MAAQF,EAClB5I,EAAK7lB,GAAK4uB,QAAS,EAgErB,SAASC,GAAWhJ,IAVpB,SAAoBA,GACdA,EAAKiB,OAA+B,iBAAfjB,EAAKiB,OAAqC,OAAfjB,EAAKiB,QACvDjB,EAAKiJ,WAAajJ,EAAKiB,aAChBjB,EAAKiB,OAQdiI,CAAWlJ,GAEoB,iBAApBA,EAAKiJ,aACdjJ,EAAKiJ,WAAa,CAAEE,MAAOnJ,EAAKiJ,aAEL,iBAAlBjJ,EAAKoJ,WACdpJ,EAAKoJ,SAAW,CAAED,MAAOnJ,EAAKoJ,WAjElC,SAAyBpJ,GACvB,GAAKtF,MAAMqM,QAAQ/G,EAAKsE,OAAxB,CAEA,GAAItE,EAAKqJ,MAAQrJ,EAAK8E,cAAgB9E,EAAKsJ,YAEzC,MADAjB,GAAM,sEACAG,GAGR,GAA+B,iBAApBxI,EAAKiJ,YAA+C,OAApBjJ,EAAKiJ,WAE9C,MADAZ,GAAM,6BACAG,GAGRC,GAAgBzI,EAAMA,EAAKsE,MAAO,CAAEnqB,IAAK,eACzC6lB,EAAKsE,MAAQd,GAAuBxD,EAAKsE,MAAO,CAAEZ,SAAU,MAsD5D6F,CAAgBvJ,GAhDlB,SAAuBA,GACrB,GAAKtF,MAAMqM,QAAQ/G,EAAKyE,KAAxB,CAEA,GAAIzE,EAAKqJ,MAAQrJ,EAAKwJ,YAAcxJ,EAAKyJ,UAEvC,MADApB,GAAM,gEACAG,GAGR,GAA6B,iBAAlBxI,EAAKoJ,UAA2C,OAAlBpJ,EAAKoJ,SAE5C,MADAf,GAAM,2BACAG,GAGRC,GAAgBzI,EAAMA,EAAKyE,IAAK,CAAEtqB,IAAK,aACvC6lB,EAAKyE,IAAMjB,GAAuBxD,EAAKyE,IAAK,CAAEf,SAAU,MAmCxDgG,CAAc1J,GAqBhB,SAAS2J,GAAgBC,GAOvB,SAASC,EAAOhvB,EAAOivB,GACrB,OAAO,IAAIzG,OACTppB,GAAOY,GACP,KACG+uB,EAASG,iBAAmB,IAAM,KAClCH,EAASI,aAAe,IAAM,KAC9BF,EAAS,IAAM,KAiBtB,MAAMG,EACJr/B,cACEE,KAAKo/B,aAAe,GAEpBp/B,KAAK49B,QAAU,GACf59B,KAAKq/B,QAAU,EACfr/B,KAAKs/B,SAAW,EAIlBC,QAAQxH,EAAIK,GACVA,EAAKkH,SAAWt/B,KAAKs/B,WAErBt/B,KAAKo/B,aAAap/B,KAAKq/B,SAAWjH,EAClCp4B,KAAK49B,QAAQv8B,KAAK,CAAC+2B,EAAML,IACzB/3B,KAAKq/B,SAAW/G,GAAiBP,GAAM,EAGzCyH,UAC8B,IAAxBx/B,KAAK49B,QAAQ78B,SAGff,KAAKw4B,KAAO,IAAM,MAEpB,MAAMiH,EAAcz/B,KAAK49B,QAAQ9+B,KAAI6S,GAAMA,EAAG,KAC9C3R,KAAK0/B,UAAYX,EAAOrG,GAAuB+G,EAAa,CAAE7G,SAAU,OAAQ,GAChF54B,KAAK2/B,UAAY,EAInBnH,KAAKrsB,GACHnM,KAAK0/B,UAAUC,UAAY3/B,KAAK2/B,UAChC,MAAM3uB,EAAQhR,KAAK0/B,UAAUlH,KAAKrsB,GAClC,IAAK6E,EAAS,OAAO,KAGrB,MAAMlQ,EAAIkQ,EAAM4uB,WAAU,CAACjuB,EAAI7Q,IAAMA,EAAI,QAAYiM,IAAP4E,IAExCkuB,EAAY7/B,KAAKo/B,aAAat+B,GAKpC,OAFAkQ,EAAMwU,OAAO,EAAG1kB,GAETrB,OAAO0Q,OAAOa,EAAO6uB,IAmChC,MAAMC,EACJhgC,cAEEE,KAAK+/B,MAAQ,GAEb//B,KAAKggC,aAAe,GACpBhgC,KAAKigC,MAAQ,EAEbjgC,KAAK2/B,UAAY,EACjB3/B,KAAKkgC,WAAa,EAIpBC,WAAWj7B,GACT,GAAIlF,KAAKggC,aAAa96B,GAAQ,OAAOlF,KAAKggC,aAAa96B,GAEvD,MAAMk7B,EAAU,IAAIjB,EAIpB,OAHAn/B,KAAK+/B,MAAM/a,MAAM9f,GAAOkK,SAAQ,EAAE2oB,EAAIK,KAAUgI,EAAQb,QAAQxH,EAAIK,KACpEgI,EAAQZ,UACRx/B,KAAKggC,aAAa96B,GAASk7B,EACpBA,EAGTC,6BACE,OAA2B,IAApBrgC,KAAKkgC,WAGdI,cACEtgC,KAAKkgC,WAAa,EAIpBX,QAAQxH,EAAIK,GACVp4B,KAAK+/B,MAAM1+B,KAAK,CAAC02B,EAAIK,IACH,UAAdA,EAAK3P,MAAkBzoB,KAAKigC,QAIlCzH,KAAKrsB,GACH,MAAMgvB,EAAIn7B,KAAKmgC,WAAWngC,KAAKkgC,YAC/B/E,EAAEwE,UAAY3/B,KAAK2/B,UACnB,IAAI1zB,EAASkvB,EAAE3C,KAAKrsB,GAiCpB,GAAInM,KAAKqgC,6BACP,GAAIp0B,GAAUA,EAAO/G,QAAUlF,KAAK2/B,eAAkB,CACpD,MAAMY,EAAKvgC,KAAKmgC,WAAW,GAC3BI,EAAGZ,UAAY3/B,KAAK2/B,UAAY,EAChC1zB,EAASs0B,EAAG/H,KAAKrsB,GAYrB,OARIF,IACFjM,KAAKkgC,YAAcj0B,EAAOqzB,SAAW,EACjCt/B,KAAKkgC,aAAelgC,KAAKigC,OAE3BjgC,KAAKsgC,eAIFr0B,GA4IX,GAHK6yB,EAAS0B,qBAAoB1B,EAAS0B,mBAAqB,IAG5D1B,EAASvW,UAAYuW,EAASvW,SAAS8N,SAAS,QAClD,MAAM,IAAI/2B,MAAM,6FAMlB,OAFAw/B,EAAS2B,iBAAmBnL,GAAUwJ,EAAS2B,kBAAoB,IAhFnE,SAASC,EAAYxL,EAAMlf,GACzB,MAAM2qB,EAAkC,EACxC,GAAIzL,EAAK0L,WAAY,OAAOD,EAE5B,CACEhF,GAGAO,GACAgC,GACA9B,IACAhtB,SAAQyxB,GAAOA,EAAI3L,EAAMlf,KAE3B8oB,EAAS0B,mBAAmBpxB,SAAQyxB,GAAOA,EAAI3L,EAAMlf,KAGrDkf,EAAK4G,cAAgB,KAErB,CACED,GAGAG,GAEAG,IACA/sB,SAAQyxB,GAAOA,EAAI3L,EAAMlf,KAE3Bkf,EAAK0L,YAAa,EAElB,IAAIE,EAAiB,KAwCrB,MAvC6B,iBAAlB5L,EAAK6G,UAAyB7G,EAAK6G,SAASgF,WAIrD7L,EAAK6G,SAAWt8B,OAAO0Q,OAAO,GAAI+kB,EAAK6G,UACvC+E,EAAiB5L,EAAK6G,SAASgF,gBACxB7L,EAAK6G,SAASgF,UAEvBD,EAAiBA,GAAkB,MAE/B5L,EAAK6G,WACP7G,EAAK6G,SAAWW,GAAgBxH,EAAK6G,SAAU+C,EAASG,mBAG1D0B,EAAMK,iBAAmBjC,EAAO+B,GAAgB,GAE5C9qB,IACGkf,EAAKsE,QAAOtE,EAAKsE,MAAQ,SAC9BmH,EAAMM,QAAUlC,EAAO4B,EAAMnH,OACxBtE,EAAKyE,KAAQzE,EAAKgM,iBAAgBhM,EAAKyE,IAAM,SAC9CzE,EAAKyE,MAAKgH,EAAMQ,MAAQpC,EAAO4B,EAAMhH,MACzCgH,EAAMS,cAAgBjyB,GAAOwxB,EAAMhH,MAAQ,GACvCzE,EAAKgM,gBAAkBlrB,EAAOorB,gBAChCT,EAAMS,gBAAkBlM,EAAKyE,IAAM,IAAM,IAAM3jB,EAAOorB,gBAGtDlM,EAAK0E,UAAS+G,EAAMU,UAAYtC,EAAuC7J,EAAY,UAClFA,EAAK3M,WAAU2M,EAAK3M,SAAW,IAEpC2M,EAAK3M,SAAW,GAAGpO,UAAU+a,EAAK3M,SAASzpB,KAAI,SAAS2sB,GACtD,OAoDN,SAA2ByJ,GAUzB,OATIA,EAAKoM,WAAapM,EAAKqM,iBACzBrM,EAAKqM,eAAiBrM,EAAKoM,SAASxiC,KAAI,SAAS0iC,GAC/C,OAAOlM,GAAUJ,EAAM,CAAEoM,SAAU,MAAQE,OAO3CtM,EAAKqM,eACArM,EAAKqM,eAOVE,GAAmBvM,GACdI,GAAUJ,EAAM,CAAEoH,OAAQpH,EAAKoH,OAAShH,GAAUJ,EAAKoH,QAAU,OAGtE78B,OAAOq1B,SAASI,GACXI,GAAUJ,GAIZA,EA/EIwM,CAAwB,SAANjW,EAAeyJ,EAAOzJ,OAEjDyJ,EAAK3M,SAASnZ,SAAQ,SAASqc,GAAKiV,EAA8B,EAAKC,MAEnEzL,EAAKoH,QACPoE,EAAYxL,EAAKoH,OAAQtmB,GAG3B2qB,EAAMP,QA1HR,SAAwBlL,GACtB,MAAMyM,EAAK,IAAI7B,EAWf,OATA5K,EAAK3M,SAASnZ,SAAQwyB,GAAQD,EAAGpC,QAAQqC,EAAKpI,MAAO,CAAEqI,KAAMD,EAAMnZ,KAAM,YAErEyM,EAAKkM,eACPO,EAAGpC,QAAQrK,EAAKkM,cAAe,CAAE3Y,KAAM,QAErCyM,EAAK0E,SACP+H,EAAGpC,QAAQrK,EAAK0E,QAAS,CAAEnR,KAAM,YAG5BkZ,EA8GSG,CAAenB,GACxBA,EAaFD,CAA8B,GAcvC,SAASe,GAAmBvM,GAC1B,QAAKA,IAEEA,EAAKgM,gBAAkBO,GAAmBvM,EAAKoH,SA6CxD,MAAMyF,WAA2BziC,MAC/BQ,YAAYkiC,EAAQt9B,GAClB+yB,MAAMuK,GACNhiC,KAAKgT,KAAO,qBACZhT,KAAK0E,KAAOA,GA+BhB,MAAM,GAAS2wB,GACT4M,GAAU3M,GACV4M,GAAWtyB,OAAO,WAk8BxB,IAAIuyB,GA37BS,SAASC,GAGpB,MAAMC,EAAY5iC,OAAOgxB,OAAO,MAE1B6R,EAAU7iC,OAAOgxB,OAAO,MAExB/W,EAAU,GAIhB,IAAI6oB,GAAY,EAChB,MAAMC,EAAqB,sFAErBC,EAAqB,CAAEC,mBAAmB,EAAM1vB,KAAM,aAAcuV,SAAU,IAKpF,IAAIjS,EAAU,CACZqsB,qBAAqB,EACrBC,oBAAoB,EACpBC,cAAe,qBACfC,iBAAkB,8BAClB/M,YAAa,QACbgN,YAAa,WACbV,UAAW,KAGXW,UAAWxL,IASb,SAASyL,EAAmBC,GAC1B,OAAO5sB,EAAQusB,cAAcz2B,KAAK82B,GAgDpC,SAASf,EAAUgB,EAAoBC,EAAeC,GACpD,IAAI9jC,EAAO,GACP2jC,EAAe,GACU,iBAAlBE,GACT7jC,EAAO4jC,EACPE,EAAiBD,EAAcC,eAC/BH,EAAeE,EAActE,WAG7BrB,GAAW,SAAU,uDACrBA,GAAW,SAAU,yGACrByF,EAAeC,EACf5jC,EAAO6jC,QAKcr2B,IAAnBs2B,IAAgCA,GAAiB,GAGrD,MAAMC,EAAU,CACd/jC,KAAAA,EACAu/B,SAAUoE,GAIZK,EAAK,mBAAoBD,GAIzB,MAAMr3B,EAASq3B,EAAQr3B,OACnBq3B,EAAQr3B,OACRu3B,EAAWF,EAAQxE,SAAUwE,EAAQ/jC,KAAM8jC,GAM/C,OAJAp3B,EAAO1M,KAAO+jC,EAAQ/jC,KAEtBgkC,EAAK,kBAAmBt3B,GAEjBA,EAYT,SAASu3B,EAAWN,EAAcO,EAAiBJ,EAAgBK,GACjE,MAAMC,EAAclkC,OAAOgxB,OAAO,MAYlC,SAASmT,IACP,IAAK5uB,EAAI+mB,SAEP,YADAnE,EAAQ3B,QAAQ4N,GAIlB,IAAIlE,EAAY,EAChB3qB,EAAIgsB,iBAAiBrB,UAAY,EACjC,IAAI3uB,EAAQgE,EAAIgsB,iBAAiBxI,KAAKqL,GAClCC,EAAM,GAEV,KAAO9yB,GAAO,CACZ8yB,GAAOD,EAAW3xB,UAAUytB,EAAW3uB,EAAM9L,OAC7C,MAAM6+B,EAAOjF,EAASG,iBAAmBjuB,EAAM,GAAGtH,cAAgBsH,EAAM,GAClE9H,GAlBiB86B,EAkBOD,EAAL/uB,EAjBf+mB,SAASiI,IAkBnB,GAAI96B,EAAM,CACR,MAAOysB,EAAMsO,GAAoB/6B,EAMjC,GALA0uB,EAAQ3B,QAAQ6N,GAChBA,EAAM,GAENH,EAAYI,IAASJ,EAAYI,IAAS,GAAK,EAC3CJ,EAAYI,IAjLD,IAiL4BtK,GAAawK,GACpDtO,EAAK5uB,WAAW,KAGlB+8B,GAAO9yB,EAAM,OACR,CACL,MAAMkzB,EAAWpF,EAAS2B,iBAAiB9K,IAASA,EACpDiC,EAAQF,WAAW1mB,EAAM,GAAIkzB,SAG/BJ,GAAO9yB,EAAM,GAEf2uB,EAAY3qB,EAAIgsB,iBAAiBrB,UACjC3uB,EAAQgE,EAAIgsB,iBAAiBxI,KAAKqL,GAtCtC,IAA2BG,EAwCzBF,GAAOD,EAAWp6B,OAAOk2B,GACzB/H,EAAQ3B,QAAQ6N,GA6BlB,SAASK,IACgB,MAAnBnvB,EAAIovB,YA3BV,WACE,GAAmB,KAAfP,EAAmB,OAEvB,IAAI53B,EAAS,KAEb,GAA+B,iBAApB+I,EAAIovB,YAA0B,CACvC,IAAK/B,EAAUrtB,EAAIovB,aAEjB,YADAxM,EAAQ3B,QAAQ4N,GAGlB53B,EAASu3B,EAAWxuB,EAAIovB,YAAaP,GAAY,EAAMQ,EAAcrvB,EAAIovB,cACzEC,EAAcrvB,EAAIovB,aAA4Cn4B,EAAW,UAEzEA,EAASq4B,EAAcT,EAAY7uB,EAAIovB,YAAYrjC,OAASiU,EAAIovB,YAAc,MAO5EpvB,EAAIykB,UAAY,IAClBA,GAAaxtB,EAAOwtB,WAEtB7B,EAAQD,eAAe1rB,EAAOs4B,SAAUt4B,EAAO6yB,UAK7C0F,GAEAZ,IAEFC,EAAa,GAOf,SAASY,EAAetO,EAAOnlB,GAC7B,IAAIlQ,EAAI,EACR,MAAMuB,EAAM2O,EAAMjQ,OAAS,EAC3B,KAAOD,GAAKuB,GAAK,CACf,IAAK8zB,EAAM6H,MAAMl9B,GAAI,CAAEA,IAAK,SAC5B,MAAM4jC,EAAQ5F,EAAS2B,iBAAiBtK,EAAMr1B,KAAOq1B,EAAMr1B,GACrD0C,EAAOwN,EAAMlQ,GACf4jC,EACF9M,EAAQF,WAAWl0B,EAAMkhC,IAEzBb,EAAargC,EACbogC,IACAC,EAAa,IAEf/iC,KAQJ,SAAS6jC,EAAazP,EAAMlkB,GAiB1B,OAhBIkkB,EAAKiB,OAA+B,iBAAfjB,EAAKiB,OAC5ByB,EAAQ1B,SAAS4I,EAAS2B,iBAAiBvL,EAAKiB,QAAUjB,EAAKiB,OAE7DjB,EAAKiJ,aAEHjJ,EAAKiJ,WAAWE,OAClBzG,EAAQF,WAAWmM,EAAY/E,EAAS2B,iBAAiBvL,EAAKiJ,WAAWE,QAAUnJ,EAAKiJ,WAAWE,OACnGwF,EAAa,IACJ3O,EAAKiJ,WAAWF,SAEzBwG,EAAevP,EAAKiJ,WAAYntB,GAChC6yB,EAAa,KAIjB7uB,EAAMvV,OAAOgxB,OAAOyE,EAAM,CAAElf,OAAQ,CAAEjG,MAAOiF,KACtCA,EAST,SAAS4vB,EAAU1P,EAAMlkB,EAAO6zB,GAC9B,IAAIC,EA/4CV,SAAoB/M,EAAIgN,GACtB,MAAM/zB,EAAQ+mB,GAAMA,EAAGS,KAAKuM,GAC5B,OAAO/zB,GAAyB,IAAhBA,EAAM9L,MA64CJ6B,CAAWmuB,EAAKiM,MAAO0D,GAErC,GAAIC,EAAS,CACX,GAAI5P,EAAK,UAAW,CAClB,MAAMkG,EAAO,IAAInG,GAASC,GAC1BA,EAAK,UAAUlkB,EAAOoqB,GAClBA,EAAKjG,iBAAgB2P,GAAU,GAGrC,GAAIA,EAAS,CACX,KAAO5P,EAAKsH,YAActH,EAAKlf,QAC7Bkf,EAAOA,EAAKlf,OAEd,OAAOkf,GAKX,GAAIA,EAAKgM,eACP,OAAO0D,EAAU1P,EAAKlf,OAAQhF,EAAO6zB,GASzC,SAASG,EAASD,GAChB,OAA+B,IAA3B/vB,EAAIorB,QAAQF,YAGd2D,GAAckB,EAAO,GACd,IAIPE,GAA2B,EACpB,GA2CX,SAASC,EAAWl0B,GAClB,MAAM+zB,EAAS/zB,EAAM,GACf6zB,EAAqBpB,EAAgBh6B,OAAOuH,EAAM9L,OAElDigC,EAAUP,EAAU5vB,EAAKhE,EAAO6zB,GACtC,IAAKM,EAAW,OAAOjD,GAEvB,MAAMkD,EAASpwB,EACXA,EAAIspB,UAAYtpB,EAAIspB,SAASD,OAC/B8F,IACAvM,EAAQF,WAAWqN,EAAQ/vB,EAAIspB,SAASD,QAC/BrpB,EAAIspB,UAAYtpB,EAAIspB,SAASL,QACtCkG,IACAM,EAAezvB,EAAIspB,SAAUttB,IACpBo0B,EAAO7G,KAChBsF,GAAckB,GAERK,EAAOzG,WAAayG,EAAO1G,aAC/BmF,GAAckB,GAEhBZ,IACIiB,EAAO1G,aACTmF,EAAakB,IAGjB,GACM/vB,EAAImhB,OACNyB,EAAQlB,YAEL1hB,EAAIupB,MAASvpB,EAAIovB,cACpB3K,GAAazkB,EAAIykB,WAEnBzkB,EAAMA,EAAIgB,aACHhB,IAAQmwB,EAAQnvB,QAIzB,OAHImvB,EAAQ7I,QACVqI,EAAaQ,EAAQ7I,OAAQtrB,GAExBo0B,EAAOzG,UAAY,EAAIoG,EAAOhkC,OAcvC,IAAIskC,EAAY,GAQhB,SAASC,EAAcC,EAAiBv0B,GACtC,MAAM+zB,EAAS/zB,GAASA,EAAM,GAK9B,GAFA6yB,GAAc0B,EAEA,MAAVR,EAEF,OADAZ,IACO,EAOT,GAAuB,UAAnBkB,EAAU5c,MAAmC,QAAfzX,EAAMyX,MAAkB4c,EAAUngC,QAAU8L,EAAM9L,OAAoB,KAAX6/B,EAAe,CAG1G,GADAlB,GAAcJ,EAAgBze,MAAMhU,EAAM9L,MAAO8L,EAAM9L,MAAQ,IAC1Dq9B,EAAW,CAEd,MAAM1X,EAAM,IAAIvrB,MAAM,wBAAwB4jC,MAG9C,MAFArY,EAAIqY,aAAeA,EACnBrY,EAAI2a,QAAUH,EAAUxD,KAClBhX,EAER,OAAO,EAIT,GAFAwa,EAAYr0B,EAEO,UAAfA,EAAMyX,KACR,OA1HJ,SAAsBzX,GACpB,MAAM+zB,EAAS/zB,EAAM,GACfy0B,EAAUz0B,EAAM6wB,KAEhBzG,EAAO,IAAInG,GAASwQ,GAEpBC,EAAkB,CAACD,EAAQ3J,cAAe2J,EAAQ,aACxD,IAAK,MAAME,KAAMD,EACf,GAAKC,IACLA,EAAG30B,EAAOoqB,GACNA,EAAKjG,gBAAgB,OAAO6P,EAASD,GAe3C,OAZIU,EAAQlH,KACVsF,GAAckB,GAEVU,EAAQzL,eACV6J,GAAckB,GAEhBZ,IACKsB,EAAQjH,aAAgBiH,EAAQzL,eACnC6J,EAAakB,IAGjBJ,EAAac,EAASz0B,GACfy0B,EAAQjH,YAAc,EAAIuG,EAAOhkC,OAiG/B6kC,CAAa50B,GACf,GAAmB,YAAfA,EAAMyX,OAAuB4a,EAAgB,CAGtD,MAAMxY,EAAM,IAAIvrB,MAAM,mBAAqBylC,EAAS,gBAAkB/vB,EAAImhB,OAAS,aAAe,KAElG,MADAtL,EAAIqK,KAAOlgB,EACL6V,EACD,GAAmB,QAAf7Z,EAAMyX,KAAgB,CAC/B,MAAMod,EAAYX,EAAWl0B,GAC7B,GAAI60B,IAAc3D,GAChB,OAAO2D,EAOX,GAAmB,YAAf70B,EAAMyX,MAAiC,KAAXsc,EAE9B,OAAO,EAOT,GAAIe,EAAa,KAAUA,EAA2B,EAAd90B,EAAM9L,MAE5C,MADY,IAAI5F,MAAM,6DAaxB,OADAukC,GAAckB,EACPA,EAAOhkC,OAGhB,MAAM+9B,EAAWiH,EAAY7C,GAC7B,IAAKpE,EAEH,MADAvB,GAAMiF,EAAmBrvB,QAAQ,KAAM+vB,IACjC,IAAI5jC,MAAM,sBAAwB4jC,EAAe,KAGzD,MAAM8C,EAAKnH,GAAgBC,GAC3B,IAAI7yB,EAAS,GAET+I,EAAM0uB,GAAgBsC,EAE1B,MAAM3B,EAAgB,GAChBzM,EAAU,IAAIthB,EAAQ0sB,UAAU1sB,IAxGtC,WACE,MAAMlC,EAAO,GACb,IAAK,IAAInT,EAAU+T,EAAK/T,IAAY69B,EAAU79B,EAAUA,EAAQ+U,OAC1D/U,EAAQk1B,OACV/hB,EAAK6xB,QAAQhlC,EAAQk1B,OAGzB/hB,EAAKhF,SAAQyO,GAAQ+Z,EAAQ1B,SAASrY,KAkGxCqoB,GACA,IAAIrC,EAAa,GACbpK,EAAY,EACZv0B,EAAQ,EACR4gC,EAAa,EACbb,GAA2B,EAE/B,IAGE,IAFAjwB,EAAIorB,QAAQE,gBAEH,CACPwF,IACIb,EAGFA,GAA2B,EAE3BjwB,EAAIorB,QAAQE,cAEdtrB,EAAIorB,QAAQT,UAAYz6B,EAExB,MAAM8L,EAAQgE,EAAIorB,QAAQ5H,KAAKiL,GAG/B,IAAKzyB,EAAO,MAEZ,MACMm1B,EAAiBb,EADH7B,EAAgBvxB,UAAUhN,EAAO8L,EAAM9L,OACT8L,GAClD9L,EAAQ8L,EAAM9L,MAAQihC,EAOxB,OALAb,EAAc7B,EAAgBh6B,OAAOvE,IACrC0yB,EAAQb,gBACRa,EAAQE,WACR7rB,EAAS2rB,EAAQC,SAEV,CACLiH,SAAUoE,EACVnzB,MAAO9D,EACPwtB,UAAWA,EACXG,SAAS,EACT2K,SAAU3M,EACVwO,KAAMpxB,GAER,MAAO6V,GACP,GAAIA,EAAIhhB,SAAWghB,EAAIhhB,QAAQwsB,SAAS,WACtC,MAAO,CACLyI,SAAUoE,EACVnzB,MAAO,GAAO0zB,GACd7J,SAAS,EACTH,UAAW,EACX4M,WAAY,CACVx8B,QAASghB,EAAIhhB,QACb3E,MAAOA,EACPo+B,QAASG,EAAgBze,MAAM9f,EAAQ,IAAKA,EAAQ,KACpDgwB,KAAMrK,EAAIqK,KACVoR,YAAar6B,GAEfs4B,SAAU3M,GAEP,GAAI2K,EACT,MAAO,CACLzD,SAAUoE,EACVnzB,MAAO,GAAO0zB,GACd7J,SAAS,EACTH,UAAW,EACX8M,YAAa1b,EACb0Z,SAAU3M,EACVwO,KAAMpxB,GAGR,MAAM6V,GAsCZ,SAASyZ,EAAc/kC,EAAMinC,GAC3BA,EAAiBA,GAAkBlwB,EAAQ+rB,WAAa5iC,OAAOD,KAAK6iC,GACpE,MAAMoE,EA5BR,SAAiClnC,GAC/B,MAAM0M,EAAS,CACb8D,MAAO,GAAOxQ,GACdq6B,SAAS,EACTH,UAAW,EACX2M,KAAM3D,EACN8B,SAAU,IAAIjuB,EAAQ0sB,UAAU1sB,IAGlC,OADArK,EAAOs4B,SAAStO,QAAQ12B,GACjB0M,EAmBWy6B,CAAwBnnC,GAEpCuJ,EAAU09B,EAAet6B,OAAO65B,GAAa75B,OAAOy6B,GAAe7nC,KAAIkU,GAC3EwwB,EAAWxwB,EAAMzT,GAAM,KAEzBuJ,EAAQm9B,QAAQQ,GAEhB,MAAMG,EAAS99B,EAAQga,MAAK,CAACpN,EAAG8V,KAE9B,GAAI9V,EAAE+jB,YAAcjO,EAAEiO,UAAW,OAAOjO,EAAEiO,UAAY/jB,EAAE+jB,UAIxD,GAAI/jB,EAAEopB,UAAYtT,EAAEsT,SAAU,CAC5B,GAAIiH,EAAYrwB,EAAEopB,UAAU+H,aAAerb,EAAEsT,SAC3C,OAAO,EACF,GAAIiH,EAAYva,EAAEsT,UAAU+H,aAAenxB,EAAEopB,SAClD,OAAQ,EAQZ,OAAO,MAGFgI,EAAMC,GAAcH,EAGrB36B,EAAS66B,EAGf,OAFA76B,EAAO86B,WAAaA,EAEb96B,EAsBT,SAAS+6B,EAAiB1W,GAExB,IAAIoF,EAAO,KACX,MAAMoJ,EApnBR,SAAuB75B,GACrB,IAAIgiC,EAAUhiC,EAAMiO,UAAY,IAEhC+zB,GAAWhiC,EAAMwN,WAAaxN,EAAMwN,WAAWS,UAAY,GAG3D,MAAMlC,EAAQsF,EAAQwsB,iBAAiBtK,KAAKyO,GAC5C,GAAIj2B,EAAO,CACT,MAAM8tB,EAAWiH,EAAY/0B,EAAM,IAKnC,OAJK8tB,IACHtB,GAAKgF,EAAmBrvB,QAAQ,KAAMnC,EAAM,KAC5CwsB,GAAK,oDAAqDv4B,IAErD65B,EAAW9tB,EAAM,GAAK,eAG/B,OAAOi2B,EACJn7B,MAAM,OACNoI,MAAMgzB,GAAWjE,EAAmBiE,IAAWnB,EAAYmB,KAkmB7CC,CAAc7W,GAE/B,GAAI2S,EAAmBnE,GAAW,OAUlC,GARAyE,EAAK,0BACH,CAAE5xB,GAAI2e,EAASwO,SAAUA,IAOvBxO,EAAQzrB,SAAS9D,OAAS,IACvBuV,EAAQqsB,sBACXziC,QAAQs9B,KAAK,iGACbt9B,QAAQs9B,KAAK,6DACbt9B,QAAQs9B,KAAK,oCACbt9B,QAAQs9B,KAAKlN,IAEXha,EAAQssB,oBAKV,MAJY,IAAIb,GACd,mDACAzR,EAAQ8W,WAMd1R,EAAOpF,EACP,MAAM9sB,EAAOkyB,EAAKtwB,YACZ6G,EAAS6yB,EAAWqD,EAAU3+B,EAAM,CAAEs7B,SAAAA,EAAUuE,gBAAgB,IAAUiB,EAAc9gC,GAE9F8sB,EAAQ8W,UAAYn7B,EAAO8D,MA/C7B,SAAyBugB,EAAS+W,EAAaC,GAC7C,MAAMxI,EAAYuI,GAAe/E,EAAQ+E,IAAiBC,EAE1DhX,EAAQrd,UAAU0hB,IAAI,QACtBrE,EAAQrd,UAAU0hB,IAAI,YAAYmK,KA4ClCyI,CAAgBjX,EAASwO,EAAU7yB,EAAO6yB,UAC1CxO,EAAQrkB,OAAS,CACf6yB,SAAU7yB,EAAO6yB,SAEjB/G,GAAI9rB,EAAOwtB,UACXA,UAAWxtB,EAAOwtB,WAEhBxtB,EAAO86B,aACTzW,EAAQyW,WAAa,CACnBjI,SAAU7yB,EAAO86B,WAAWjI,SAC5BrF,UAAWxtB,EAAO86B,WAAWtN,YAIjC8J,EAAK,yBAA0B,CAAE5xB,GAAI2e,EAASrkB,OAAAA,EAAQzI,KAAAA,IAwBxD,IAAIgkC,GAAiB,EAKrB,SAASC,IAEqB,YAAxBvkC,SAASwkC,WAKExkC,SAAS2sB,iBAAiBvZ,EAAQysB,aAC1C3zB,QAAQ43B,GALbQ,GAAiB,EAyErB,SAASzB,EAAY/yB,GAEnB,OADAA,GAAQA,GAAQ,IAAItJ,cACb24B,EAAUrvB,IAASqvB,EAAUC,EAAQtvB,IAQ9C,SAAS20B,EAAgBC,GAAW,aAAE1E,IACX,iBAAd0E,IACTA,EAAY,CAACA,IAEfA,EAAUx4B,SAAQy4B,IAAWvF,EAAQuF,EAAMn+B,eAAiBw5B,KAO9D,SAASyD,EAAc3zB,GACrB,MAAM80B,EAAO/B,EAAY/yB,GACzB,OAAO80B,IAASA,EAAKpF,kBAuCvB,SAASa,EAAKh4B,EAAOsN,GACnB,MAAM8sB,EAAKp6B,EACXmO,EAAQtK,SAAQ,SAAS2K,GACnBA,EAAO4rB,IACT5rB,EAAO4rB,GAAI9sB,MA7HK,oBAAX/H,QAA0BA,OAAOe,kBAC1Cf,OAAOe,iBAAiB,oBAP1B,WAEM21B,GAAgBC,OAK8B,GA6IpDhoC,OAAO0Q,OAAOiyB,EAAM,CAClBD,UAAAA,EACAmC,cAAAA,EACAmD,aAAAA,EACAT,iBAAAA,EAEAe,eAdF,SAAiCp2B,GAI/B,OAHA8rB,GAAW,SAAU,oDACrBA,GAAW,SAAU,oCAEduJ,EAAiBr1B,IAWxBq2B,UA3LF,SAAmBC,GACjB3xB,EAAU2rB,GAAQ3rB,EAAS2xB,IA2L3BC,iBAvLuB,KACvBT,IACAhK,GAAW,SAAU,4DAsLrB0K,uBAlLF,WACEV,IACAhK,GAAW,SAAU,kEAiLrB2K,iBA9IF,SAA0BlF,EAAcmF,GACtC,IAAIP,EAAO,KACX,IACEA,EAAOO,EAAmBjG,GAC1B,MAAOkG,GAGP,GAFA/K,GAAM,wDAAwDpqB,QAAQ,KAAM+vB,KAEvEX,EAAa,MAAM+F,EAAkB/K,GAAM+K,GAKhDR,EAAOrF,EAGJqF,EAAK90B,OAAM80B,EAAK90B,KAAOkwB,GAC5Bb,EAAUa,GAAgB4E,EAC1BA,EAAKS,cAAgBF,EAAmB/sB,KAAK,KAAM8mB,GAE/C0F,EAAKxF,SACPqF,EAAgBG,EAAKxF,QAAS,CAAEY,aAAAA,KA2HlCsF,mBAlHF,SAA4BtF,UACnBb,EAAUa,GACjB,IAAK,MAAM2E,KAASpoC,OAAOD,KAAK8iC,GAC1BA,EAAQuF,KAAW3E,UACdZ,EAAQuF,IA+GnBY,cAvGF,WACE,OAAOhpC,OAAOD,KAAK6iC,IAuGnB0D,YAAAA,EACA4B,gBAAAA,EACAhB,cAAAA,EACA1E,QAAAA,GACAyG,UAhDF,SAAmB3uB,IArBnB,SAA0BA,GAEpBA,EAAO,2BAA6BA,EAAO,6BAC7CA,EAAO,2BAA8B7Q,IACnC6Q,EAAO,yBACLta,OAAO0Q,OAAO,CAAElL,MAAOiE,EAAKyI,IAAMzI,MAIpC6Q,EAAO,0BAA4BA,EAAO,4BAC5CA,EAAO,0BAA6B7Q,IAClC6Q,EAAO,wBACLta,OAAO0Q,OAAO,CAAElL,MAAOiE,EAAKyI,IAAMzI,MAUxCy/B,CAAiB5uB,GACjBL,EAAQrY,KAAK0Y,MAiDfqoB,EAAKwG,UAAY,WAAarG,GAAY,GAC1CH,EAAKyG,SAAW,WAAatG,GAAY,GACzCH,EAAK0G,cAh9BO,SAk9BZ1G,EAAKtJ,MAAQ,CACX3e,OAAQA,GACR6d,UAAWA,GACXG,OAAQA,GACRD,SAAUA,GACVD,iBAAkBA,IAGpB,IAAK,MAAM5oB,KAAOsrB,GAEU,iBAAfA,GAAMtrB,IAEf2lB,GAAa2F,GAAMtrB,IAOvB,OAFA5P,OAAO0Q,OAAOiyB,EAAMzH,IAEbyH,EAIO2G,CAAK,IAEjBC,GAAO7G,GACXA,GAAU8G,YAAc9G,GACxBA,GAAUpN,QAAUoN,GAEpB,MAAMrH,GAAW,2BACXoO,GAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIC,GAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAIIC,GAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAGIC,GAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAGIC,GAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGIC,GAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGIC,GAAY,GAAGrvB,OACnBmv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KjJ,oBAAzB,gEAQPqF,aAAY,EACZ6M,MAAO,WACP9iB,SAAU,CACR0iB,EACA7I,EAAKH,QAAQG,EAAK3H,WAAY,CAAEjB,MAAON,EAAYhmB,UAAW,qBAIlE,CACElC,MAAO,SACPyoB,UAAW,GAEb8R,EAIA,CACEv6B,MAAO,MAAQkoB,EACfO,UAAW,GAEb,CACEzoB,MAAO,CAAE,0BACTkC,UAAW,CAAE,EAAG,kBAChBqV,SAAU,CAAE0iB,IAEdK,EA7NwB,CAC1B7R,UAAW,EACXzoB,MAAO,sBACPkC,UAAW,qBA4NTg4B,EACAM,EACA,CACEx6B,MAAO,eA4mDfg4B,GAAKZ,iBAAiB,OAh4BtB,SAAahG,GACX,MAAMtJ,EAAQsJ,EAAKtJ,MACb6S,EAAevJ,EAAKtI,QAAQ,KAAM,KAiBlCqP,EAAW,CACf,OACA,QAGA,WAUIC,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,aAmYIwC,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,gBAwBIC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,iBAGIC,EAAYF,EAEZ1C,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,SACA,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,QA6fAh9B,QAAQ+wB,IACA2O,EAAmBvV,SAAS4G,KAchCqO,EAAgB,CACpB9R,MAAOV,EAAM3e,OAAO,KAAM2e,EAAMX,UAAU2T,GAAY,SACtDrS,UAAW,EACXsC,SAAU,CAAEwO,SAAUuB,IAoBxB,MAAO,CACL94B,KAAM,MACNisB,kBAAkB,EAElBrF,QAAS,WACTmC,SAAU,CACRgF,SAAU,YACV9D,QAvBJ,SAAyB7oB,GAAM,WAC7B23B,EAAU,KAAEC,GACV,IACF,MAAMC,EAAYD,EAElB,OADAD,EAAaA,GAAc,GACpB33B,EAAKtV,KAAK+e,GACXA,EAAK7M,MAAM,WAAa+6B,EAAW1V,SAASxY,GACvCA,EACEouB,EAAUpuB,GACZ,GAAGA,MAEHA,IAaPquB,CAAgBhD,EAAU,CAAE8C,KAAO/yB,GAAMA,EAAElY,OAAS,IACtDupC,QAASnB,EACT1gB,KAAM2gB,EACNmB,SA7F4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,mBAgFAhiB,SAAU,CACR,CACEiR,MAAOV,EAAMX,UAAU0T,GACvBpS,UAAW,EACXsC,SAAU,CACRgF,SAAU,UACV9D,QAASiM,EAAS/uB,OAAO0xB,GACzBvB,QAASnB,EACT1gB,KAAM2gB,IAGV,CACEl2B,UAAW,OACXsmB,MAAOV,EAAMX,OAzmBjB,mBACA,eACA,gBACA,qBAwmBEmT,EA9Da,CACfp4B,UAAW,WACXsmB,MAAO,cAxkBM,CACbtmB,UAAW,SACXouB,SAAU,CACR,CACE9H,MAAO,IACPG,IAAK,IACLpR,SAAU,CAAE,CAAEiR,MAAO,UAID,CACxBA,MAAO,IACPG,IAAK,IACLpR,SAAU,CAAE,CAAEiR,MAAO,QA2nBnB4I,EAAK9H,cACL8H,EAAKjI,qBACLwR,EA/Da,CACfz4B,UAAW,WACXsmB,MAAO,gDACPC,UAAW,QAgTfuP,GAAKZ,iBAAiB,QAvnCtB,SAAchG,GACZ,MAAMtJ,EAAQsJ,EAAKtJ,MACbqT,EAAgB,iCAChBC,EAAmBD,EACrBvC,GAAW,OAASuC,EAAgB,kBAAoBA,EAAgB,WAAY,OAAQ,GAkE1FjD,EAAW,CACfjM,QAlEoB,CACpB,eACA,WACA,UACA,MACA,SACA,KACA,SACA,MACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,OACA,OACA,OACA,QACA,YACA,QACA,aACA,WACA,OACA,SACA,UACA,UACA,SACA,MACA,SACA,WACA,SACA,YACA,SACA,UACA,SACA,WACA,UACA,KACA,UA2BAqN,QAnBe,CACf,QACA,OACA,QAiBA7hB,KAdY,CACZ,OACA,UACA,OACA,QACA,MACA,OACA,QACA,UAOA8hB,SA1BgB,CAChB,QACA,SA2BI8B,EAAa,CACjBn5B,UAAW,OACXsmB,MAAO,IAAM2S,EACb5jB,SAAU,CACR,CACEiR,MAAO,KACPG,IAAK,KACLpR,SAAU,CAAE,WAIZ0iB,EAAS,CACb/3B,UAAW,SACXsmB,MAAO,KACPG,IAAK,KACLoC,SA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AK,YACLgF,WAAW,EACXyF,YAAa,CACX,MACA,SAIN,CACElxB,UAAW,MAEXsmB,MAAO,kBACPG,IAAK,IACLoC,SAAU,CAAE/oB,KAAM,UAClBuV,SAAU,CAAEqkB,GACZtQ,OAAQ,CACN3C,IAAK,aACLgF,WAAW,EACXyF,YAAa,CACX,aACA,aACA,SAKN,CACElxB,UAAW,MACXsmB,MAAO,WAGT,CACEtmB,UAAW,MACXsmB,MAAOV,EAAM3e,OACX,IACA2e,EAAMd,UAAUc,EAAM3e,OACpBmyB,EAIAxT,EAAMX,OAAO,MAAO,IAAK,SAG7BwB,IAAK,OACLpR,SAAU,CACR,CACErV,UAAW,OACXsmB,MAAO8S,EACP7S,UAAW,EACX6C,OAAQsQ,KAKd,CACE15B,UAAW,MACXsmB,MAAOV,EAAM3e,OACX,MACA2e,EAAMd,UAAUc,EAAM3e,OACpBmyB,EAAa,OAGjB/jB,SAAU,CACR,CACErV,UAAW,OACXsmB,MAAO8S,EACP7S,UAAW,GAEb,CACED,MAAO,IACPC,UAAW,EACX+C,YAAY,UAcxBwM,GAAKZ,iBAAiB,UAjmDtB,SAAgBhG,GACd,MAAMtJ,EAAQsJ,EAAKtJ,MACbgC,EAAW,qCACX+R,EAAiB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,SAuGI3D,EAAW,CACfnI,SAAU,sBACV9D,QAAS4P,EACTtC,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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AEqB,OAAOo1E,KAAK,CACVC,GAAI,CACAC,oBAAqB,QACrBC,iBAAkB,QAClBC,gBAAiB,UACjBC,qBAAsB,6CACtBC,0BAA2B,iBAC3BC,wBAAyB,mBACzBC,6BACI,gEACJC,mBACI,gGACJC,wBACI,gIACJC,yBACI,uIACJC,uBACI,iJACJC,0BACI,oEACJC,qBACI,qEACJC,wBACI,0EACJC,2BAA4B,4BAC5BC,2BAA4B,qCAC5BC,4BACI,uDACJC,wBAAyB,0BACzBC,kCACI,4FACJC,6BACI,iFACJC,+BAAgC,0CCjCxC/3E,EAAEqB,OAAOo1E,KAAK,CACV,QAAS,CACLE,oBAAqB,YACrBC,iBAAkB,UAClBC,gBAAgB,QAChBC,qBAAsB,oDACtBC,0BAA2B,gBAC3BC,wBAAyB,wBACzBC,6BACI,yEACJC,mBACI,6GACJC,wBACI,0IACJC,yBACI,0JACJC,uBACI,6JACJC,0BACI,4FACJC,qBACI,4DACJC,wBACI,oFACJC,2BAA2B,8BAC3BC,2BAA2B,iDAC3BC,4BACI,iEACJC,wBAAwB,+BACxBC,kCACI,8DACJC,6BACI,iEACJC,+BAAgC","sources":["webpack://WebComponents//Users/bmiller/Runestone/RunestoneComponents/node_modules/moment/locale|sync|/^\\.\\/.*$/","webpack://WebComponents/./runestone/hparsons/js/hparsonsFeedback.js","webpack://WebComponents/./runestone/hparsons/js/blockGrader.js","webpack://WebComponents/./runestone/hparsons/js/BlockFeedback.js","webpack://WebComponents/./runestone/hparsons/js/SQLFeedback.js","webpack://WebComponents/./runestone/hparsons/js/horizontal-parsons.js","webpack://WebComponents/./runestone/hparsons/js/hparsons-sql.js","webpack://WebComponents/./runestone/parsons/js/parsons-i18n.en.js","webpack://WebComponents/./runestone/parsons/js/parsons-i18n.pt-br.js"],"sourcesContent":["var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","export default class HParsonsFeedback {\n constructor(hparsons) {\n this.hparsons = hparsons;\n }\n createOutput() {\n console.log('createOutput method not implemented in feedback!');\n }\n async runButtonHandler() {\n console.log('runButtonClicked method not implemented in feedback!');\n }\n customizeUI() {\n // used to change some minor UI, e.g. the text on Run button\n }\n init() {\n // initlizations functionalities such as preparing SQL,\n // or checking related options\n }\n\n clearFeedback() {\n // called when input is changed\n console.log('clearFeedback method not implemented in feedback!');\n }\n \n reset() {\n // called when reset is clicked\n console.log('reset method not implemented in feedback!');\n }\n}\n","// This file is adapted from lineGrader in parsons directive.\n// We could have fit our data structure to use the original LineBasedGrader directly,\n// but that would result in changes in parsons directive affecting this, so we created a copy\n// instead.\n\nexport default class BlockBasedGrader {\n constructor(problem) {\n this.problem = problem;\n }\n // Use a LIS (Longest Increasing Subsequence) algorithm to return the indexes\n // that are not part of that subsequence.\n inverseLISIndices(arr) {\n // Get all subsequences\n var allSubsequences = [];\n for (var i = 0; i < arr.length; i++) {\n var subsequenceForCurrent = [arr[i]],\n current = arr[i],\n lastElementAdded = -1;\n for (var j = i; j < arr.length; j++) {\n var subsequent = arr[j];\n if (subsequent > current && lastElementAdded < subsequent) {\n subsequenceForCurrent.push(subsequent);\n lastElementAdded = subsequent;\n }\n }\n allSubsequences.push(subsequenceForCurrent);\n }\n // Figure out the longest one\n var longestSubsequenceLength = -1;\n var longestSubsequence;\n for (let i in allSubsequences) {\n var subs = allSubsequences[i];\n if (subs.length > longestSubsequenceLength) {\n longestSubsequenceLength = subs.length;\n longestSubsequence = subs;\n }\n }\n // Create the inverse indexes\n var indexes = [];\n var lIndex = 0;\n for (let i = 0; i < arr.length; i++) {\n if (lIndex > longestSubsequence.length) {\n indexes.push(i);\n } else {\n if (arr[i] == longestSubsequence[lIndex]) {\n lIndex += 1;\n } else {\n indexes.push(i);\n }\n }\n }\n return indexes;\n }\n // grade that element, returning the state\n grade() {\n this.correctLines = 0;\n this.percentLines = 0;\n var solutionLines = this.solution;\n var answerLines = this.answer;\n var i;\n var state;\n this.percentLines =\n Math.min(answerLines.length, solutionLines.length) /\n Math.max(answerLines.length, solutionLines.length);\n if (answerLines.length < solutionLines.length) {\n state = \"incorrectTooShort\";\n this.correctLength = false;\n } else if (answerLines.length == solutionLines.length) {\n this.correctLength = true;\n } else {\n this.correctLength = false;\n }\n\n // Determine whether the code **that is there** is in the correct order\n // If there is too much or too little code this only matters for\n // calculating a percentage score.\n let isCorrectOrder = true;\n this.correctLines = 0;\n this.solutionLength = solutionLines.length;\n let loopLimit = Math.min(solutionLines.length, answerLines.length);\n for (i = 0; i < loopLimit; i++) {\n if (answerLines[i] !== solutionLines[i]) {\n isCorrectOrder = false;\n } else {\n this.correctLines += 1;\n }\n }\n\n if (\n isCorrectOrder &&\n this.correctLength\n ) {\n // Perfect\n state = \"correct\";\n } else if (!isCorrectOrder && state != \"incorrectTooShort\") {\n state = \"incorrectMoveBlocks\";\n }\n this.calculatePercent();\n this.graderState = state;\n return state;\n }\n\n calculatePercent() {\n let numLines = this.percentLines * 0.2;\n let lines = this.answer.length;\n let numCorrectBlocks = (this.correctLines / lines) * 0.8;\n\n this.percent = numLines + numCorrectBlocks;\n }\n}\n","import HParsonsFeedback from \"./hparsonsFeedback\";\nimport BlockBasedGrader from \"./blockGrader.js\";\nimport \"../../parsons/js/parsons-i18n.en.js\";\nimport \"../../parsons/js/parsons-i18n.pt-br.js\";\n\nexport default class BlockFeedback extends HParsonsFeedback {\n createOutput() {\n // Block based grading output\n this.messageDiv = document.createElement(\"div\");\n this.hparsons.outerDiv.appendChild(this.messageDiv);\n }\n customizeUI() {\n $(this.hparsons.runButton).text('Check Me');\n }\n\n init() {\n this.checkCount = 0;\n this.solved = false;\n // TODO: not sure what is the best way to do this\n this.grader = new BlockBasedGrader();\n let solutionBlocks = [];\n for (let i = 0; i < this.hparsons.blockAnswer.length; ++i) {\n solutionBlocks.push(this.hparsons.originalBlocks[this.hparsons.blockAnswer[i]]);\n }\n this.solution = solutionBlocks;\n this.grader.solution = solutionBlocks;\n this.answerArea = this.hparsons.hparsonsInput.querySelector('.drop-area');\n }\n\n // Called when check button clicked (block-based Feedback)\n async runButtonHandler() {\n this.checkCurrentAnswer();\n this.renderFeedback();\n }\n\n // Used for block-based feedback\n checkCurrentAnswer() {\n if (!this.solved) {\n this.checkCount++;\n this.clearFeedback();\n this.grader.answer = this.hparsons.hparsonsInput.getParsonsTextArray();\n this.grade = this.grader.grade();\n if (this.grade == \"correct\") {\n $(this.hparsons.runButton).prop(\"disabled\", true);\n this.solved = true;\n }\n }\n }\n\n renderFeedback() {\n this.grade = this.grader.graderState;\n var feedbackArea;\n var answerArea = $(this.answerArea);\n feedbackArea = $(this.messageDiv);\n\n if (this.grade === \"correct\") {\n answerArea.addClass(\"correct\");\n feedbackArea.fadeIn(100);\n feedbackArea.attr(\"class\", \"alert alert-info\");\n if (this.checkCount > 1) {\n feedbackArea.html(\n $.i18n(\"msg_parson_correct\", this.checkCount)\n );\n } else {\n feedbackArea.html($.i18n(\"msg_parson_correct_first_try\"));\n }\n this.checkCount = 0;\n }\n\n if (this.grade === \"incorrectTooShort\") {\n // too little code\n answerArea.addClass(\"incorrect\");\n feedbackArea.fadeIn(500);\n feedbackArea.attr(\"class\", \"alert alert-danger\");\n feedbackArea.html($.i18n(\"msg_parson_too_short\"));\n }\n\n if (this.grade === \"incorrectMoveBlocks\") {\n var answerBlocks = this.answerArea.children;\n var inSolution = [];\n var inSolutionIndexes = [];\n var notInSolution = [];\n for (let i = 0; i < answerBlocks.length; i++) {\n var block = answerBlocks[i];\n var index = this.solution.indexOf(block.textContent);\n if (index == -1) {\n notInSolution.push(block);\n } else {\n inSolution.push(block);\n inSolutionIndexes.push(index);\n }\n }\n var lisIndexes = this.grader.inverseLISIndices(inSolutionIndexes);\n for (let i = 0; i < lisIndexes.length; i++) {\n notInSolution.push(inSolution[lisIndexes[i]]);\n }\n answerArea.addClass(\"incorrect\");\n feedbackArea.fadeIn(500);\n feedbackArea.attr(\"class\", \"alert alert-danger\");\n for (let i = 0; i < notInSolution.length; i++) {\n $(notInSolution[i]).addClass(\"incorrectPosition\");\n }\n feedbackArea.html($.i18n(\"msg_parson_wrong_order\"));\n }\n }\n\n // Feedback UI for Block-based Feedback\n clearFeedback() {\n $(this.answerArea).removeClass(\"incorrect correct\");\n var children = this.answerArea.childNodes;\n for (var i = 0; i < children.length; i++) {\n $(children[i]).removeClass(\n \"correctPosition incorrectPosition\"\n );\n }\n $(this.messageDiv).hide();\n }\n\n reset() {\n if (this.solved) {\n this.checkCount = 0;\n $(this.hparsons.runButton).prop(\"disabled\", false);\n this.solved = false;\n }\n this.clearFeedback();\n }\n\n}","import HParsonsFeedback from \"./hparsonsFeedback\";\nimport initSqlJs from \"sql.js/dist/sql-wasm.js\";\nimport Handsontable from \"handsontable\";\nimport 'handsontable/dist/handsontable.full.css';\n\nvar allDburls = {};\n\nexport default class SQLFeedback extends HParsonsFeedback {\n\n createOutput() {\n var outDiv = document.createElement(\"div\");\n $(outDiv).addClass(\"hp_output col-md-12\");\n this.outDiv = outDiv;\n this.output = document.createElement(\"pre\");\n this.output.id = this.hparsons.divid + \"_stdout\";\n $(this.output).css(\"visibility\", \"hidden\");\n var clearDiv = document.createElement(\"div\");\n $(clearDiv).css(\"clear\", \"both\"); // needed to make parent div resize properly\n this.hparsons.outerDiv.appendChild(clearDiv);\n outDiv.appendChild(this.output);\n this.hparsons.outerDiv.appendChild(outDiv);\n clearDiv = document.createElement(\"div\");\n $(clearDiv).css(\"clear\", \"both\"); // needed to make parent div resize properly\n this.hparsons.outerDiv.appendChild(clearDiv);\n }\n\n renderFeedback() {\n if (this.testResult) {\n $(this.output).text(this.testResult);\n $(this.output).css(\"visibility\", \"visible\");\n }\n $(this.outDiv).show();\n }\n\n clearFeedback() {\n $(this.outDiv).hide();\n }\n\n reset() {\n this.clearFeedback();\n }\n\n init() {\n // adapted from activecode-sql\n // fnprefix sets the path to load the sql-wasm.wasm file\n var bookprefix;\n var fnprefix;\n if (eBookConfig.useRunestoneServices) {\n bookprefix = `${eBookConfig.app}/books/published/${eBookConfig.basecourse}`;\n fnprefix = bookprefix + \"/_static\";\n } else {\n bookprefix = \"\";\n fnprefix = \"/_static\";\n }\n let SQLconfig = {\n locateFile: (filename) => `${fnprefix}/${filename}`,\n };\n var self = this.hparsons;\n initSqlJs(SQLconfig).then(function (SQL) {\n // set up call to load database asynchronously if given\n if (self.dburl) {\n if (self.dburl.startsWith(\"/_static\")) {\n self.dburl = `${bookprefix}${self.dburl}`;\n }\n $(self.runButton).attr(\"disabled\", \"disabled\");\n let buttonText = $(self.runButton).text();\n $(self.runButton).text($.i18n(\"msg_activecode_load_db\"));\n if (!(self.dburl in allDburls)) {\n allDburls[self.dburl] = {\n status: \"loading\",\n xWaitFor: jQuery.Deferred(),\n };\n } else {\n if (allDburls[self.dburl].status == \"loading\") {\n allDburls[self.dburl].xWaitFor.done(function () {\n self.db = allDburls[self.dburl].dbObject;\n $(self.runButton).removeAttr(\"disabled\");\n $(self.runButton).text(buttonText);\n });\n return;\n }\n self.db = allDburls[self.dburl].dbObject;\n $(self.runButton).removeAttr(\"disabled\");\n $(self.runButton).text(buttonText);\n return;\n }\n var xhr = new XMLHttpRequest();\n // For example: https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite\n xhr.open(\"GET\", self.dburl, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = (e) => {\n var uInt8Array = new Uint8Array(xhr.response);\n self.db = new SQL.Database(uInt8Array);\n allDburls[self.dburl].dbObject = self.db;\n $(self.runButton).text(buttonText);\n $(self.runButton).removeAttr(\"disabled\");\n allDburls[self.dburl].db = uInt8Array;\n allDburls[self.dburl].status = \"ready\";\n allDburls[self.dburl].xWaitFor.resolve();\n // contents is now [{columns:['col1','col2',...], values:[[first row], [second row], ...]}]\n };\n xhr.send();\n } else {\n self.db = new SQL.Database();\n }\n });\n }\n\n // adapted from activecode - SQL\n async runButtonHandler() {\n // Disable the run button until the run is finished.\n this.hparsons.runButton.disabled = true;\n try {\n await this.runProg();\n } catch (e) {\n console.log(`there was an error ${e} running the code`);\n }\n this.logCurrentAnswer();\n this.renderFeedback();\n // The run is finished; re-enable the button.\n this.hparsons.runButton.disabled = false;\n }\n\n // adapted from activecode-sql\n async runProg() {\n // Clear any old results\n let divid = this.hparsons.divid + \"_sql_out\";\n let respDiv = document.getElementById(divid);\n if (respDiv) {\n respDiv.parentElement.removeChild(respDiv);\n }\n $(this.output).text(\"\");\n // Run this query\n let query = await this.buildProg();\n if (!this.hparsons.db) {\n $(this.output).text(\n `Error: Database not initialized! DBURL: ${this.dburl}`\n );\n return;\n }\n\n let it = this.hparsons.db.iterateStatements(query);\n this.results = [];\n try {\n for (let statement of it) {\n let columns = statement.getColumnNames();\n if (columns.length > 0) {\n // data! probably a SELECT\n let data = [];\n while (statement.step()) {\n data.push(statement.get());\n }\n this.results.push({\n status: \"success\",\n columns: columns,\n values: data,\n rowcount: data.length,\n });\n } else {\n let nsql = statement.getNormalizedSQL();\n let prefix = nsql.substr(0, 6).toLowerCase();\n statement.step(); // execute the query\n // Try to detect INSERT/UPDATE/DELETE to give friendly feedback\n // on rows modified - unfortunately, this won't catch such queries\n // if they use CTEs. There seems to be no reliable way of knowing\n // when a SQLite query actually modified data.\n if (\n prefix === \"insert\" ||\n prefix === \"update\" ||\n prefix === \"delete\"\n ) {\n this.results.push({\n status: \"success\",\n operation: prefix,\n rowcount: this.db.getRowsModified(),\n });\n } else {\n this.results.push({ status: \"success\" });\n }\n }\n }\n } catch (e) {\n this.results.push({\n status: \"failure\",\n message: e.toString(),\n sql: it.getRemainingSQL(),\n });\n }\n\n if (this.results.length === 0) {\n this.results.push({\n status: \"failure\",\n message: \"No queries submitted.\",\n });\n }\n\n respDiv = document.createElement(\"div\");\n respDiv.id = divid;\n this.outDiv.appendChild(respDiv);\n $(this.outDiv).show();\n // Sometimes we don't want to show a bunch of intermediate results\n // like when we are including a bunch of previous statements from\n // other activecodes In that case the showlastsql flag can be set\n // so we only show the last result\n let resultArray = this.results;\n for (let r of resultArray) {\n let section = document.createElement(\"div\");\n section.setAttribute(\"class\", \"hp_sql_result\");\n respDiv.appendChild(section);\n if (r.status === \"success\") {\n if (r.columns) {\n let tableDiv = document.createElement(\"div\");\n section.appendChild(tableDiv);\n let maxHeight = 350;\n if (resultArray.length > 1) maxHeight = 200; // max height smaller if lots of results\n createTable(r, tableDiv, maxHeight);\n let messageBox = document.createElement(\"pre\");\n let rmsg = r.rowcount !== 1 ? \" rows \" : \" row \";\n let msg = \"\" + r.rowcount + rmsg + \"returned\";\n if (r.rowcount > 100) {\n msg = msg + \" (only first 100 rows displayed)\";\n }\n msg = msg + \".\";\n messageBox.textContent = msg;\n messageBox.setAttribute(\"class\", \"hp_sql_result_success\");\n section.appendChild(messageBox);\n } else if (r.rowcount) {\n let messageBox = document.createElement(\"pre\");\n let op = r.operation;\n op = op + (op.charAt(op.length - 1) === \"e\" ? \"d.\" : \"ed.\");\n let rmsg = r.rowcount !== 1 ? \" rows \" : \" row \";\n messageBox.textContent = \"\" + r.rowcount + rmsg + op;\n messageBox.setAttribute(\"class\", \"hp_sql_result_success\");\n section.appendChild(messageBox);\n } else {\n let messageBox = document.createElement(\"pre\");\n messageBox.textContent = \"Operation succeeded.\";\n messageBox.setAttribute(\"class\", \"hp_sql_result_success\");\n section.appendChild(messageBox);\n }\n } else {\n let messageBox = document.createElement(\"pre\");\n messageBox.textContent = r.message;\n messageBox.setAttribute(\"class\", \"hp_sql_result_failure\");\n section.appendChild(messageBox);\n }\n }\n\n // Now handle autograding\n if (this.hparsons.suffix) {\n this.testResult = this.autograde(\n this.results[this.results.length - 1]\n );\n } else {\n $(this.output).css(\"visibility\", \"hidden\");\n }\n\n return Promise.resolve(\"done\");\n }\n\n // adapted from activecode\n async buildProg() {\n // assemble code from prefix, suffix, and editor for running.\n // TODO: fix or remove text entry\n var prog;\n if (this.hparsons.textentry) {\n prog = this.hparsons.hparsonsInput.getCurrentInput();\n } else {\n prog = this.hparsons.hparsonsInput.getParsonsTextArray().join(' ') + \"\\n\";\n }\n return Promise.resolve(prog);\n }\n\n // copied from activecode-sql\n async logCurrentAnswer(sid) {\n // commenting these out for now\n // Not sure if we need to log run event in horizontal parsons\n // let data = {\n // div_id: this.hparsons.divid,\n // code: this.hparsons.hparsonsInput.getParsonsTextArray(),\n // language: \"sql\",\n // // errinfo: this.results[this.results.length - 1].status,\n // to_save: this.hparsons.saveCode,\n // prefix: this.hparsons.pretext,\n // suffix: this.hparsons.suffix,\n // }; // Log the run event\n // if (typeof sid !== \"undefined\") {\n // data.sid = sid;\n // }\n // await this.hparsons.logRunEvent(data);\n\n if (this.unit_results) {\n let unitData = {\n event: \"unittest\",\n div_id: this.hparsons.divid,\n course: eBookConfig.course,\n act: this.unit_results,\n };\n if (typeof sid !== \"undefined\") {\n unitData.sid = sid;\n }\n await this.hparsons.logBookEvent(unitData);\n }\n }\n\n // might move to base class if used by multiple execution based feedback\n autograde(result_table) {\n var tests = this.hparsons.suffix.split(/\\n/);\n this.passed = 0;\n this.failed = 0;\n // Tests should be of the form\n // assert row,col oper value for example\n // assert 4,4 == 3\n var result = \"\";\n tests = tests.filter(function (s) {\n return s.indexOf(\"assert\") > -1;\n });\n for (let test of tests) {\n let wlist = test.split(/\\s+/);\n wlist.shift();\n let loc = wlist.shift();\n let oper = wlist.shift();\n let expected = wlist.join(\" \");\n let [row, col] = loc.split(\",\");\n result += this.testOneAssert(\n row,\n col,\n oper,\n expected,\n result_table\n );\n result += \"\\n\";\n }\n let pct = (100 * this.passed) / (this.passed + this.failed);\n pct = pct.toLocaleString(undefined, { maximumFractionDigits: 2 });\n result += `You passed ${this.passed} out of ${this.passed + this.failed\n } tests for ${pct}%`;\n this.unit_results = `percent:${pct}:passed:${this.passed}:failed:${this.failed}`;\n return result;\n }\n\n // might move to base class if used by multiple execution based feedback\n testOneAssert(row, col, oper, expected, result_table) {\n // make sure row and col are in bounds\n let actual;\n let output = \"\";\n try {\n actual = result_table.values[row][col];\n } catch (e) {\n if (expected == 'NO_DATA') {\n this.passed++;\n output = `Passed: No data in row ${row}, column ${col}`;\n return output;\n } else {\n output = `Failed: Not enough data to check row ${row} or column ${col}`;\n return output;\n }\n }\n const operators = {\n \"==\": function (operand1, operand2) {\n return operand1 == operand2;\n },\n \"!=\": function (operand1, operand2) {\n return operand1 != operand2;\n },\n \">\": function (operand1, operand2) {\n return operand1 > operand2;\n },\n \"<\": function (operand1, operand2) {\n return operand1 > operand2;\n },\n };\n let res = operators[oper](actual, expected);\n if (res) {\n output = `Pass: ${actual} ${oper} ${expected} in row ${row} column ${result_table.columns[col]}`;\n this.passed++;\n } else {\n output = `Failed ${actual} ${oper} ${expected} in row ${row} column ${result_table.columns[col]}`;\n this.failed++;\n }\n return output;\n }\n}\n\nfunction createTable(tableData, container, maxHeight) {\n let data = tableData.values;\n let trimRows = undefined;\n if (data.length === 0) {\n // kludge: no column headers will show up unless we do this\n data = [tableData.columns.map((e) => null)];\n trimRows = [0];\n }\n\n var hot = new Handsontable(container, {\n data: data,\n trimRows: trimRows,\n width: \"100%\",\n height: maxHeight,\n autoRowSize: true,\n autoColumnSize: { useHeaders: true },\n rowHeaders: false,\n colHeaders: tableData.columns,\n editor: false,\n maxRows: 100,\n filters: false,\n dropdownMenu: false,\n licenseKey: \"non-commercial-and-evaluation\",\n });\n\n // calculate actual height and resize\n let actualHeight = 40; // header height + small margin\n if (tableData.values.length > 0) {\n for (let i = 0; i < data.length; i++) {\n actualHeight = actualHeight + hot.getRowHeight(i);\n if (actualHeight > maxHeight) break;\n }\n }\n\n hot.updateSettings({ height: actualHeight });\n\n return hot;\n}\n","/**!\n * Sortable 1.14.0\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar version$1 = \"1.14.0\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n } // Safari ignores further event handling after mousedown\n\n\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // if there is a last element, it is the target\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n\n if (firstChild === dragEl) {\n return completed(false);\n }\n\n target = firstChild;\n targetRect = getRect(target);\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var rect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var spacer = 10;\n return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version$1;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nvar RegexEvent;\n(function (RegexEvent) {\n (function (ParsonsInputAction) {\n ParsonsInputAction[\"ADD\"] = \"add\";\n ParsonsInputAction[\"MOVE\"] = \"move\";\n ParsonsInputAction[\"REMOVE\"] = \"remove\";\n })(RegexEvent.ParsonsInputAction || (RegexEvent.ParsonsInputAction = {}));\n (function (RegexCompilationStatus) {\n RegexCompilationStatus[\"ERROR\"] = \"error\";\n RegexCompilationStatus[\"SUCCESS\"] = \"success\";\n })(RegexEvent.RegexCompilationStatus || (RegexEvent.RegexCompilationStatus = {}));\n (function (MatchTriggerType) {\n MatchTriggerType[\"MANUAL\"] = \"manual\";\n MatchTriggerType[\"AUTO\"] = \"auto\";\n })(RegexEvent.MatchTriggerType || (RegexEvent.MatchTriggerType = {}));\n (function (PageStatus) {\n PageStatus[\"FOCUS\"] = \"focus\";\n PageStatus[\"VISIBILITY\"] = \"visibility\";\n })(RegexEvent.PageStatus || (RegexEvent.PageStatus = {}));\n})(RegexEvent || (RegexEvent = {}));\n\nvar deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE$1 = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE$1,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE$1,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nvar core = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n\nconst IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n // ``\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substr(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nvar javascript_1 = javascript;\n\n/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n const lookahead = `\\\\b|${RESERVED_WORDS.join('|')}`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead})`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[bB](_?[01])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[oO](_?[0-7])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead})`\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ](?=${lookahead})`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|->|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n begin: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /\\bdef/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nvar python_1 = python;\n\n// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov \nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\n/**\n * Allows recursive regex expressions to a given depth\n *\n * ie: recurRegex(\"(abc~~~)\", /~~~/g, 2) becomes:\n * (abc(abc(abc)))\n *\n * @param {string} re\n * @param {RegExp} substitution (should be a g mode regex)\n * @param {number} depth\n * @returns {string}``\n */\nfunction recurRegex(re, substitution, depth) {\n if (depth === -1) return \"\";\n\n return re.replace(substitution, _ => {\n return recurRegex(re, substitution, depth - 1);\n });\n}\n\n/** @type LanguageFn */\nfunction java(hljs) {\n const regex = hljs.regex;\n const JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n const GENERIC_IDENT_RE = JAVA_IDENT_RE\n + recurRegex('(?:<' + JAVA_IDENT_RE + '~~~(?:\\\\s*,\\\\s*' + JAVA_IDENT_RE + '~~~)*>)?', /~~~/g, 2);\n const MAIN_KEYWORDS = [\n 'synchronized',\n 'abstract',\n 'private',\n 'var',\n 'static',\n 'if',\n 'const ',\n 'for',\n 'while',\n 'strictfp',\n 'finally',\n 'protected',\n 'import',\n 'native',\n 'final',\n 'void',\n 'enum',\n 'else',\n 'break',\n 'transient',\n 'catch',\n 'instanceof',\n 'volatile',\n 'case',\n 'assert',\n 'package',\n 'default',\n 'public',\n 'try',\n 'switch',\n 'continue',\n 'throws',\n 'protected',\n 'public',\n 'private',\n 'module',\n 'requires',\n 'exports',\n 'do',\n 'sealed'\n ];\n\n const BUILT_INS = [\n 'super',\n 'this'\n ];\n\n const LITERALS = [\n 'false',\n 'true',\n 'null'\n ];\n\n const TYPES = [\n 'char',\n 'boolean',\n 'long',\n 'float',\n 'int',\n 'byte',\n 'short',\n 'double'\n ];\n\n const KEYWORDS = {\n keyword: MAIN_KEYWORDS,\n literal: LITERALS,\n type: TYPES,\n built_in: BUILT_INS\n };\n\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [ \"self\" ] // allow nested () inside our annotation\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [ hljs.C_BLOCK_COMMENT_MODE ],\n endsParent: true\n };\n\n return {\n name: 'Java',\n aliases: [ 'jsp' ],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n className: \"string\",\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n match: [\n /\\b(?:class|interface|enum|extends|implements|new)/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n // Exceptions for hyphenated keywords\n match: /non-sealed/,\n scope: \"keyword\"\n },\n {\n begin: [\n regex.concat(/(?!else)/, JAVA_IDENT_RE),\n /\\s+/,\n JAVA_IDENT_RE,\n /\\s+/,\n /=/\n ],\n className: {\n 1: \"type\",\n 3: \"variable\",\n 5: \"operator\"\n }\n },\n {\n begin: [\n /record/,\n /\\s+/,\n JAVA_IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n },\n contains: [\n PARAMS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n },\n {\n begin: [\n '(?:' + GENERIC_IDENT_RE + '\\\\s+)',\n hljs.UNDERSCORE_IDENT_RE,\n /\\s*(?=\\()/\n ],\n className: { 2: \"title.function\" },\n keywords: KEYWORDS,\n contains: [\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n ANNOTATION,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMERIC,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n NUMERIC,\n ANNOTATION\n ]\n };\n}\n\nvar java_1 = java;\n\n/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n/*\n\nGoals:\n\nSQL is intended to highlight basic/common SQL keywords and expressions\n\n- If pretty much every single SQL server includes supports, then it's a canidate.\n- It is NOT intended to include tons of vendor specific keywords (Oracle, MySQL,\n PostgreSQL) although the list of data types is purposely a bit more expansive.\n- For more specific SQL grammars please see:\n - PostgreSQL and PL/pgSQL - core\n - T-SQL - https://github.com/highlightjs/highlightjs-tsql\n - sql_more (core)\n\n */\n\nfunction sql(hljs) {\n const regex = hljs.regex;\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ { begin: /''/ } ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { begin: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update\",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [\n ...RESERVED_WORDS,\n ...NON_RESERVED_WORDS\n ].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n className: \"variable\",\n begin: /@[a-z0-9]+/,\n };\n\n const OPERATOR = {\n className: \"operator\",\n begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n begin: regex.concat(/\\b/, regex.either(...FUNCTIONS), /\\s*\\(/),\n relevance: 0,\n keywords: { built_in: FUNCTIONS }\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {\n exceptions, when\n } = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags ` x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n begin: regex.either(...COMBOS),\n relevance: 0,\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword: KEYWORDS.concat(COMBOS),\n literal: LITERALS,\n type: TYPES\n },\n },\n {\n className: \"type\",\n begin: regex.either(...MULTI_WORD_TYPES)\n },\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nvar sql_1 = sql;\n\n/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // Element names can contain letters, digits, hyphens, underscores, and periods\n const TAG_NAME_RE = regex.concat(/[A-Z_]/, regex.optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/);\n const XML_IDENT_RE = /[A-Za-z0-9._:-]+/;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the